- - Acknowledgements
+ - Licenses and Acknowledgments
- Command-Line Options
- Custom Wizards
- FAQ
diff --git a/doc/qtcreator/images/extraimages/images/FTSvDmcAgPI.jpg b/doc/qtcreator/images/extraimages/images/FTSvDmcAgPI.jpg
deleted file mode 100644
index ff4798dd033..00000000000
Binary files a/doc/qtcreator/images/extraimages/images/FTSvDmcAgPI.jpg and /dev/null differ
diff --git a/doc/qtcreator/images/extraimages/images/LnVjI0I7cKs.jpg b/doc/qtcreator/images/extraimages/images/LnVjI0I7cKs.jpg
deleted file mode 100644
index 68fc982a2e5..00000000000
Binary files a/doc/qtcreator/images/extraimages/images/LnVjI0I7cKs.jpg and /dev/null differ
diff --git a/doc/qtcreator/images/extraimages/images/hOx3dod5-1A.jpg b/doc/qtcreator/images/extraimages/images/hOx3dod5-1A.jpg
deleted file mode 100644
index a75657f81cd..00000000000
Binary files a/doc/qtcreator/images/extraimages/images/hOx3dod5-1A.jpg and /dev/null differ
diff --git a/doc/qtcreator/images/extraimages/qtcreator-extraimages.qdocconf b/doc/qtcreator/images/extraimages/qtcreator-extraimages.qdocconf
index dcaf3a6bf9a..67ac27dd46c 100644
--- a/doc/qtcreator/images/extraimages/qtcreator-extraimages.qdocconf
+++ b/doc/qtcreator/images/extraimages/qtcreator-extraimages.qdocconf
@@ -1,7 +1,4 @@
{HTML.extraimages,qhp.QtCreator.extraFiles} += \
images/commercial.png \
- images/5OiIqFTjUZI.jpg \
images/EhJ1eV_6RH8.jpg \
- images/FTSvDmcAgPI.jpg \
- images/hOx3dod5-1A.jpg \
- images/LnVjI0I7cKs.jpg
+ images/5OiIqFTjUZI.jpg
diff --git a/doc/qtcreator/images/icons/info.png b/doc/qtcreator/images/icons/info.png
index eace805de31..06d59d1bd61 100644
Binary files a/doc/qtcreator/images/icons/info.png and b/doc/qtcreator/images/icons/info.png differ
diff --git a/doc/qtcreator/images/icons/location.png b/doc/qtcreator/images/icons/location.png
new file mode 100644
index 00000000000..2c0aacb881c
Binary files /dev/null and b/doc/qtcreator/images/icons/location.png differ
diff --git a/doc/qtcreator/images/icons/warning.png b/doc/qtcreator/images/icons/warning.png
new file mode 100644
index 00000000000..75955c6253f
Binary files /dev/null and b/doc/qtcreator/images/icons/warning.png differ
diff --git a/doc/qtcreator/images/qtcreator-android-create-avd.png b/doc/qtcreator/images/qtcreator-android-create-avd.png
deleted file mode 100644
index 50121765e56..00000000000
Binary files a/doc/qtcreator/images/qtcreator-android-create-avd.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-android-create-avd.webp b/doc/qtcreator/images/qtcreator-android-create-avd.webp
new file mode 100644
index 00000000000..e016a92bdab
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-android-create-avd.webp differ
diff --git a/doc/qtcreator/images/qtcreator-axivion-issue-search.webp b/doc/qtcreator/images/qtcreator-axivion-issue-search.webp
index b7f13e50356..d98c5929ad1 100644
Binary files a/doc/qtcreator/images/qtcreator-axivion-issue-search.webp and b/doc/qtcreator/images/qtcreator-axivion-issue-search.webp differ
diff --git a/doc/qtcreator/images/qtcreator-axivion-view.webp b/doc/qtcreator/images/qtcreator-axivion-view.webp
deleted file mode 100644
index 0d1614b4eba..00000000000
Binary files a/doc/qtcreator/images/qtcreator-axivion-view.webp and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-bookmarks-view.png b/doc/qtcreator/images/qtcreator-bookmarks-view.png
deleted file mode 100644
index 70c3bc2fe3d..00000000000
Binary files a/doc/qtcreator/images/qtcreator-bookmarks-view.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-bookmarks-view.webp b/doc/qtcreator/images/qtcreator-bookmarks-view.webp
new file mode 100644
index 00000000000..3d4eead7599
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-bookmarks-view.webp differ
diff --git a/doc/qtcreator/images/qtcreator-compiler-explorer.webp b/doc/qtcreator/images/qtcreator-compiler-explorer.webp
index 3fb945df38b..b6ec50550f8 100644
Binary files a/doc/qtcreator/images/qtcreator-compiler-explorer.webp and b/doc/qtcreator/images/qtcreator-compiler-explorer.webp differ
diff --git a/doc/qtcreator/images/qtcreator-compilers-target-triple.png b/doc/qtcreator/images/qtcreator-compilers-target-triple.png
deleted file mode 100644
index 7157cae001e..00000000000
Binary files a/doc/qtcreator/images/qtcreator-compilers-target-triple.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-create-new-kit-vxworks.webp b/doc/qtcreator/images/qtcreator-create-new-kit-vxworks.webp
new file mode 100644
index 00000000000..d27bf9fe313
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-create-new-kit-vxworks.webp differ
diff --git a/doc/qtcreator/images/qtcreator-debugger-general-options.png b/doc/qtcreator/images/qtcreator-debugger-general-options.png
deleted file mode 100644
index 6ab957dd76a..00000000000
Binary files a/doc/qtcreator/images/qtcreator-debugger-general-options.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-extension-mode.webp b/doc/qtcreator/images/qtcreator-extension-mode.webp
index 8a880f3c444..ac8efaeca6d 100644
Binary files a/doc/qtcreator/images/qtcreator-extension-mode.webp and b/doc/qtcreator/images/qtcreator-extension-mode.webp differ
diff --git a/doc/qtcreator/images/qtcreator-external-tools.png b/doc/qtcreator/images/qtcreator-external-tools.png
deleted file mode 100644
index 949eff9ae25..00000000000
Binary files a/doc/qtcreator/images/qtcreator-external-tools.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-external-tools.webp b/doc/qtcreator/images/qtcreator-external-tools.webp
new file mode 100644
index 00000000000..43bf51685b5
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-external-tools.webp differ
diff --git a/doc/qtcreator/images/qtcreator-find-references-to-symbol-under-cursor.png b/doc/qtcreator/images/qtcreator-find-references-to-symbol-under-cursor.png
deleted file mode 100644
index c2ad158b183..00000000000
Binary files a/doc/qtcreator/images/qtcreator-find-references-to-symbol-under-cursor.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-find-references-to-symbol-under-cursor.webp b/doc/qtcreator/images/qtcreator-find-references-to-symbol-under-cursor.webp
new file mode 100644
index 00000000000..e53a901cc0c
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-find-references-to-symbol-under-cursor.webp differ
diff --git a/doc/qtcreator/images/qtcreator-install-plugin-accept-terms-and-conditions.webp b/doc/qtcreator/images/qtcreator-install-plugin-accept-terms-and-conditions.webp
new file mode 100644
index 00000000000..7bf337b6145
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-install-plugin-accept-terms-and-conditions.webp differ
diff --git a/doc/qtcreator/images/qtcreator-install-plugin-location.png b/doc/qtcreator/images/qtcreator-install-plugin-location.png
deleted file mode 100644
index a4007680e0f..00000000000
Binary files a/doc/qtcreator/images/qtcreator-install-plugin-location.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-install-plugin-location.webp b/doc/qtcreator/images/qtcreator-install-plugin-location.webp
new file mode 100644
index 00000000000..2b570767c16
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-install-plugin-location.webp differ
diff --git a/doc/qtcreator/images/qtcreator-install-plugin-source.png b/doc/qtcreator/images/qtcreator-install-plugin-source.png
deleted file mode 100644
index c4766b670a5..00000000000
Binary files a/doc/qtcreator/images/qtcreator-install-plugin-source.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-install-plugin-source.webp b/doc/qtcreator/images/qtcreator-install-plugin-source.webp
new file mode 100644
index 00000000000..8d262011cbd
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-install-plugin-source.webp differ
diff --git a/doc/qtcreator/images/qtcreator-options-cpp-compilers.png b/doc/qtcreator/images/qtcreator-options-cpp-compilers.png
deleted file mode 100644
index ca2f1f6fa12..00000000000
Binary files a/doc/qtcreator/images/qtcreator-options-cpp-compilers.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-performance-analyzer-timeline.png b/doc/qtcreator/images/qtcreator-performance-analyzer-timeline.png
deleted file mode 100644
index f47d79787ba..00000000000
Binary files a/doc/qtcreator/images/qtcreator-performance-analyzer-timeline.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-performance-analyzer-timeline.webp b/doc/qtcreator/images/qtcreator-performance-analyzer-timeline.webp
new file mode 100644
index 00000000000..a8cecfd5626
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-performance-analyzer-timeline.webp differ
diff --git a/doc/qtcreator/images/qtcreator-plugin-details.webp b/doc/qtcreator/images/qtcreator-plugin-details.webp
new file mode 100644
index 00000000000..a242e101ad7
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-plugin-details.webp differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-axivion-general.webp b/doc/qtcreator/images/qtcreator-preferences-axivion-general.webp
new file mode 100644
index 00000000000..3089b3378f3
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-preferences-axivion-general.webp differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-axivion-path-mapping.webp b/doc/qtcreator/images/qtcreator-preferences-axivion-path-mapping.webp
new file mode 100644
index 00000000000..48bab0b659b
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-preferences-axivion-path-mapping.webp differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-axivion-project.webp b/doc/qtcreator/images/qtcreator-preferences-axivion-project.webp
deleted file mode 100644
index 1a1520909f1..00000000000
Binary files a/doc/qtcreator/images/qtcreator-preferences-axivion-project.webp and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-axivion.webp b/doc/qtcreator/images/qtcreator-preferences-axivion.webp
deleted file mode 100644
index 6d3ebc35ec4..00000000000
Binary files a/doc/qtcreator/images/qtcreator-preferences-axivion.webp and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-compile-output.webp b/doc/qtcreator/images/qtcreator-preferences-compile-output.webp
index 2dab7f7333c..9c11e13837e 100644
Binary files a/doc/qtcreator/images/qtcreator-preferences-compile-output.webp and b/doc/qtcreator/images/qtcreator-preferences-compile-output.webp differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-compilers-clang-cl.webp b/doc/qtcreator/images/qtcreator-preferences-compilers-clang-cl.webp
new file mode 100644
index 00000000000..c02517d1b21
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-preferences-compilers-clang-cl.webp differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-compilers-clang.webp b/doc/qtcreator/images/qtcreator-preferences-compilers-clang.webp
new file mode 100644
index 00000000000..68e3252355e
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-preferences-compilers-clang.webp differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-compilers-qcc.webp b/doc/qtcreator/images/qtcreator-preferences-compilers-qcc.webp
new file mode 100644
index 00000000000..7d39d268a92
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-preferences-compilers-qcc.webp differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-compilers.webp b/doc/qtcreator/images/qtcreator-preferences-compilers.webp
new file mode 100644
index 00000000000..3a31ea611c1
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-preferences-compilers.webp differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-debugger-general.webp b/doc/qtcreator/images/qtcreator-preferences-debugger-general.webp
new file mode 100644
index 00000000000..9eb9c77ef8c
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-preferences-debugger-general.webp differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-devices-vxworks.webp b/doc/qtcreator/images/qtcreator-preferences-devices-vxworks.webp
new file mode 100644
index 00000000000..7bd41530443
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-preferences-devices-vxworks.webp differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-environment-system.webp b/doc/qtcreator/images/qtcreator-preferences-environment-system.webp
index 9b86064da52..76d3154d041 100644
Binary files a/doc/qtcreator/images/qtcreator-preferences-environment-system.webp and b/doc/qtcreator/images/qtcreator-preferences-environment-system.webp differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-extensions.webp b/doc/qtcreator/images/qtcreator-preferences-extensions.webp
index ba94c46dca4..e66b43c0e17 100644
Binary files a/doc/qtcreator/images/qtcreator-preferences-extensions.webp and b/doc/qtcreator/images/qtcreator-preferences-extensions.webp differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-telemetry-usage-statistics.webp b/doc/qtcreator/images/qtcreator-preferences-telemetry-usage-statistics.webp
new file mode 100644
index 00000000000..392b518284d
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-preferences-telemetry-usage-statistics.webp differ
diff --git a/doc/qtcreator/images/qtcreator-preferences-vcs-general.webp b/doc/qtcreator/images/qtcreator-preferences-vcs-general.webp
index b6206a71d0f..a44987b8d6a 100644
Binary files a/doc/qtcreator/images/qtcreator-preferences-vcs-general.webp and b/doc/qtcreator/images/qtcreator-preferences-vcs-general.webp differ
diff --git a/doc/qtcreator/images/qtcreator-project-qt-quick-details.webp b/doc/qtcreator/images/qtcreator-project-qt-quick-details.webp
index 56da5804372..cfd0d752cef 100644
Binary files a/doc/qtcreator/images/qtcreator-project-qt-quick-details.webp and b/doc/qtcreator/images/qtcreator-project-qt-quick-details.webp differ
diff --git a/doc/qtcreator/images/qtcreator-project-qt-quick.webp b/doc/qtcreator/images/qtcreator-project-qt-quick.webp
index f4587391bbe..db983569dee 100644
Binary files a/doc/qtcreator/images/qtcreator-project-qt-quick.webp and b/doc/qtcreator/images/qtcreator-project-qt-quick.webp differ
diff --git a/doc/qtcreator/images/qtcreator-projects-build-dependencies.webp b/doc/qtcreator/images/qtcreator-projects-build-dependencies.webp
new file mode 100644
index 00000000000..2d1c72d375f
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-projects-build-dependencies.webp differ
diff --git a/doc/qtcreator/images/qtcreator-projects-settings-qt-quick.webp b/doc/qtcreator/images/qtcreator-projects-settings-qt-quick.webp
new file mode 100644
index 00000000000..585d832fdb4
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-projects-settings-qt-quick.webp differ
diff --git a/doc/qtcreator/images/qtcreator-refactoring-find.png b/doc/qtcreator/images/qtcreator-refactoring-find.png
deleted file mode 100644
index 5cf396361e2..00000000000
Binary files a/doc/qtcreator/images/qtcreator-refactoring-find.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-refactoring-find.webp b/doc/qtcreator/images/qtcreator-refactoring-find.webp
new file mode 100644
index 00000000000..d1df9560a17
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-refactoring-find.webp differ
diff --git a/doc/qtcreator/images/qtcreator-search-all-projects.webp b/doc/qtcreator/images/qtcreator-search-all-projects.webp
index 7cabff26631..cad645c470b 100644
Binary files a/doc/qtcreator/images/qtcreator-search-all-projects.webp and b/doc/qtcreator/images/qtcreator-search-all-projects.webp differ
diff --git a/doc/qtcreator/images/qtcreator-search-cpp-symbols.png b/doc/qtcreator/images/qtcreator-search-cpp-symbols.png
deleted file mode 100644
index f5aade540c9..00000000000
Binary files a/doc/qtcreator/images/qtcreator-search-cpp-symbols.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-search-cpp-symbols.webp b/doc/qtcreator/images/qtcreator-search-cpp-symbols.webp
new file mode 100644
index 00000000000..207b8a1a6ed
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-search-cpp-symbols.webp differ
diff --git a/doc/qtcreator/images/qtcreator-search-file-system.webp b/doc/qtcreator/images/qtcreator-search-file-system.webp
index 31494d1a17f..1ea7b704ea6 100644
Binary files a/doc/qtcreator/images/qtcreator-search-file-system.webp and b/doc/qtcreator/images/qtcreator-search-file-system.webp differ
diff --git a/doc/qtcreator/images/qtcreator-search-reg-exp.webp b/doc/qtcreator/images/qtcreator-search-reg-exp.webp
index a56f9b18d42..b7100a159d3 100644
Binary files a/doc/qtcreator/images/qtcreator-search-reg-exp.webp and b/doc/qtcreator/images/qtcreator-search-reg-exp.webp differ
diff --git a/doc/qtcreator/images/qtcreator-set-compiler-explorer-url.webp b/doc/qtcreator/images/qtcreator-set-compiler-explorer-url.webp
new file mode 100644
index 00000000000..29e4a29cf55
Binary files /dev/null and b/doc/qtcreator/images/qtcreator-set-compiler-explorer-url.webp differ
diff --git a/doc/qtcreator/images/qtcreator-telemetry-settings.png b/doc/qtcreator/images/qtcreator-telemetry-settings.png
deleted file mode 100644
index aac2db8240a..00000000000
Binary files a/doc/qtcreator/images/qtcreator-telemetry-settings.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-test-results.webp b/doc/qtcreator/images/qtcreator-test-results.webp
index 409c8970965..7192b0367b1 100644
Binary files a/doc/qtcreator/images/qtcreator-test-results.webp and b/doc/qtcreator/images/qtcreator-test-results.webp differ
diff --git a/doc/qtcreator/images/qtcreator-toolchains.png b/doc/qtcreator/images/qtcreator-toolchains.png
deleted file mode 100644
index 938762a6e62..00000000000
Binary files a/doc/qtcreator/images/qtcreator-toolchains.png and /dev/null differ
diff --git a/doc/qtcreator/images/qtcreator-welcome-session.webp b/doc/qtcreator/images/qtcreator-welcome-session.webp
index 7a67042f1cb..3911bd66e65 100644
Binary files a/doc/qtcreator/images/qtcreator-welcome-session.webp and b/doc/qtcreator/images/qtcreator-welcome-session.webp differ
diff --git a/doc/qtcreator/qtcreator-online.qdocconf b/doc/qtcreator/qtcreator-online.qdocconf
index b96e6e53979..d2155c9786c 100644
--- a/doc/qtcreator/qtcreator-online.qdocconf
+++ b/doc/qtcreator/qtcreator-online.qdocconf
@@ -4,7 +4,7 @@ include(config/qtcreator-project.qdocconf)
HTML.footer = \
" \n" \
" \n" \
- " © $QTCREATOR_COPYRIGHT_YEAR The Qt Company Ltd.\n" \
+ " $QTCREATOR_COPYRIGHT\n" \
" Documentation contributions included herein are the copyrights of\n" \
" their respective owners. " \
" The documentation provided herein is licensed under the terms of the" \
diff --git a/doc/qtcreator/qtcreator.qdocconf b/doc/qtcreator/qtcreator.qdocconf
index 9ebd93b0192..d1e920409d8 100644
--- a/doc/qtcreator/qtcreator.qdocconf
+++ b/doc/qtcreator/qtcreator.qdocconf
@@ -10,7 +10,7 @@ HTML.footer = \
"\n" \
"
\n" \
" \n" \
- " © $QTCREATOR_COPYRIGHT_YEAR The Qt Company Ltd.\n" \
+ " $QTCREATOR_COPYRIGHT\n" \
" Documentation contributions included herein are the copyrights of\n" \
" their respective owners. " \
" The documentation provided herein is licensed under the terms of the" \
diff --git a/doc/qtcreatordev/src/coding-style.qdoc b/doc/qtcreatordev/src/coding-style.qdoc
index 33a2189aaf6..ae911830fff 100644
--- a/doc/qtcreatordev/src/coding-style.qdoc
+++ b/doc/qtcreatordev/src/coding-style.qdoc
@@ -952,13 +952,22 @@
Consider using \c{=default} and \c{=delete} to control the special functions.
- \section3 Override
+ \section3 Final and Override
- It is recommended to use the \c{override} keyword when overriding virtual functions. Do not
- use virtual on overridden functions.
+ It is recommended to use the \c{final} keyword for classes that are not meant to be inherited
+ from. This is the typical case for value classes, factories and most factory products.
- Make sure that a class uses \c{override} consistently, either for all overridden functions or
- for none.
+ It is recommended to use the \c{final} keyword when overriding virtual functions in
+ final classes, and whenever a virtual function is not meant to be overridden further.
+ Do not use \c{virtual} on \c{final} functions.
+
+ It is recommended to use the \c{override} keyword when overriding virtual functions if
+ \c{final} is not applicable, i.e. when the class is meant to be derived further and
+ further overriding of the function may be necessary.
+
+ Note that some compilers complain when a derived class marks only some but not all
+ overridden functions as either \c{final} or \c{override}, so make sure to mark all
+ at the same time.
\section3 Range-Based for-Loop
diff --git a/doc/qtcreatordev/src/first-plugin.qdoc b/doc/qtcreatordev/src/first-plugin.qdoc
index 0e45e17759f..4f483f3cd74 100644
--- a/doc/qtcreatordev/src/first-plugin.qdoc
+++ b/doc/qtcreatordev/src/first-plugin.qdoc
@@ -255,8 +255,8 @@
\snippet exampleplugin/Example.json.in 3
The \c {IDE_PLUGIN_DEPENDENCIES} variable is automatically replaced by the
- dependency information in \c {QTC_PLUGIN_DEPENDS} and
- \c {QTC_PLUGIN_RECOMMENDS} from your plugin's \c {.pro} file.
+ dependency information in \c {PLUGIN_DEPENDS} amd \c {PLUGIN_RECOMMENDS}
+ from your plugin's \c {add_qtc_plugin()} call in its \c {CMakeLists.txt} file.
\section1 Plugin Class
diff --git a/doc/qtcreatordev/src/plugin-metadata.qdoc b/doc/qtcreatordev/src/plugin-metadata.qdoc
index 20d4073fd14..d91bf52c4f2 100644
--- a/doc/qtcreatordev/src/plugin-metadata.qdoc
+++ b/doc/qtcreatordev/src/plugin-metadata.qdoc
@@ -17,7 +17,7 @@
\section2 Main Keys
The main keys that are used to identify your your plugin and define default loading behavior,
- consist of the mandatory keys \c Name and \c Version, and the optional keys \c CompatVersion,
+ consist of the mandatory keys \c Id and \c Version, and the optional keys \c CompatVersion,
\c Experimental, \c DisabledByDefault, \c Required and \c Platform.
\table
\header
@@ -25,10 +25,14 @@
\li Value Type
\li Meaning
\row
- \li Name
+ \li Id
\li String
\li This is used as an identifier for the plugin and can e.g.
be referenced in other plugin's dependencies.
+ \row
+ \li Name
+ \li String
+ \li This is used as the display name of your plugin in the UI.
\row
\li Version
\li String
@@ -132,6 +136,11 @@
\li String
\li Link to further information about the plugin, like
\c{http://www.mycompany-online.com/products/greatplugin}.
+ \row
+ \li DocumentationUrl
+ \li String
+ \li Link to online documentation for the plugin, like
+ \c{https://www.mycompany-online.com/docs/greatplugin/manual.html}.
\endtable
\section2 Dependencies
@@ -141,36 +150,37 @@
these other plugins are loaded before this plugin.
Dependencies are declared with the key \c Dependency, which contains an array of JSON objects
- with required keys \c Name and \c Version, and optional key \c Type.
+ with required keys \c Id and \c Version, and optional key \c Type.
The following formulas illustrate how the dependency information is matched.
- In the formulas the name of the required plugin (as defined in the \c Name of the dependency
- object) is denoted as \c DependencyName
+ In the formulas the Id of the required plugin (as defined in the \c Id of the dependency
+ object) is denoted as \c DependencyId
and the required version of the plugin is denoted as \c DependencyVersion.
- A plugin with given \c Name, \c Version and \c CompatVersion
+ A plugin with given \c Id, \c Version and \c CompatVersion
as defined in the plugin meta data matches
the dependency if
\list
- \li its \c Name matches \c DependencyName, and
+ \li its \c Id matches \c DependencyId, and
\li \c {CompatVersion <= DependencyVersion <= Version}.
\endlist
For example a dependency
\code
{
- "Name" : "SomeOtherPlugin",
+ "Id" : "someotherplugin",
"Version" : "2.3.0_2"
}
\endcode
would be matched by a plugin with
\code
{
+ "Id" : "someotherplugin",
"Name" : "SomeOtherPlugin",
"Version" : "3.1.0",
"CompatVersion" : "2.2.0",
...
}
\endcode
- since the name matches, and the version \c{2.3.0_2} given in the dependency tag
+ since the id matches, and the version \c{2.3.0_2} given in the dependency tag
lies in the range of \c{2.2.0} and \c{3.1.0}.
\table
@@ -191,9 +201,9 @@
\li Value Type
\li Meaning
\row
- \li Name
+ \li Id
\li String
- \li The name of the plugin, on which this plugin relies.
+ \li The Id of the plugin, on which this plugin relies.
\row
\li Version
\li String
@@ -293,9 +303,11 @@
\code
{
+ "Id" : "test",
"Name" : "Test",
"Version" : "1.0.1",
"CompatVersion" : "1.0.0",
+ "VendorId" : "mycompany",
"Vendor" : "My Company",
"Copyright" : "(C) 2016 MyCompany",
"License" : [
@@ -309,6 +321,7 @@
"It demonstrates the great use of the plugin meta data."
],
"Url" : "http://www.mycompany-online.com/products/greatplugin",
+ "DocumentationUrl" : "https://www.mycompany-online.com/docs/greatplugin/manual.html",
"Arguments" : [
{
"Name" : "-variant",
@@ -317,8 +330,8 @@
}
],
"Dependencies" : [
- { "Name" : "SomeOtherPlugin", "Version" : "2.3.0_2" },
- { "Name" : "EvenOther", "Version" : "1.0.0" }
+ { "Id" : "someotherplugin", "Version" : "2.3.0_2" },
+ { "Id" : "evenother", "Version" : "1.0.0" }
]
}
\endcode
diff --git a/doc/qtcreatordev/src/qtcreator-dev.qdoc b/doc/qtcreatordev/src/qtcreator-dev.qdoc
index 998f040ebf7..17897710145 100644
--- a/doc/qtcreatordev/src/qtcreator-dev.qdoc
+++ b/doc/qtcreatordev/src/qtcreator-dev.qdoc
@@ -243,7 +243,7 @@
\endlist
\li Reference
\list
- \li \l{http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html}
+ \li \l{https://specifications.freedesktop.org/shared-mime-info-spec/latest/}
{MIME Type Specification Files}
\li \l{External Tool Specification Files}
\li \l{http://kate-editor.org/2005/03/24/writing-a-syntax-highlighting-file/}
diff --git a/doc/qtdesignstudio/images/studio-preferences-telemetry-usage-statistics.webp b/doc/qtdesignstudio/images/studio-preferences-telemetry-usage-statistics.webp
new file mode 100644
index 00000000000..a5c4dbf6826
Binary files /dev/null and b/doc/qtdesignstudio/images/studio-preferences-telemetry-usage-statistics.webp differ
diff --git a/doc/qtdesignstudio/src/how-to/qtdesignstudio-usage-statistics.qdoc b/doc/qtdesignstudio/src/how-to/qtdesignstudio-usage-statistics.qdoc
new file mode 100644
index 00000000000..750d2d11c6b
--- /dev/null
+++ b/doc/qtdesignstudio/src/how-to/qtdesignstudio-usage-statistics.qdoc
@@ -0,0 +1,59 @@
+// Copyright (C) 2024 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
+
+/*!
+ \page studio-telemetry.html
+ \previouspage creator-quick-ui-forms.html
+ \nextpage studio-collecting-usage-statistics.html
+
+ \title Managing Data Collection
+
+ See below for more information about the collected data:
+
+ \list
+ \li \l {Collecting Usage Statistics}
+ \li \l {Collecting User Feedback}
+ \li \l {Reporting Crashes}
+ \endlist
+
+ \section1 Principles of Data Collection
+
+ No personal data, such as names, IP addresses, MAC addresses, or project
+ and path names are collected. However, QUuid objects are used to identify
+ data records that belong to one user. The objects cannot be converted
+ back to the actual values from which they were generated.
+
+ For more information about Qt privacy policy, see
+ \l{https://www.qt.io/terms-conditions/privacy-and-security}
+ {Qt Appendix for Privacy and Security}.
+
+ \sa {Collecting Usage Statistics}
+*/
+
+/*!
+ \page studio-collecting-usage-statistics.html
+ \previouspage studio-telemetry.html
+ \nextpage studio-user-feedback.html
+
+ \title Collecting Usage Statistics
+
+ The telemetry plugin uses the
+ \l{https://api.kde.org/frameworks/kuserfeedback/html/index.html}
+ {KUserFeedback} framework to collect the usage data. The library
+ has been designed from the user data privacy point of view and
+ \QC respects the same privacy rules.
+
+ The data is transmitted to the backend storage using an encrypted
+ connection. The storage is located in the same Heroku backend as the
+ \QOI backend. Physically, data is stored in the Amazon cloud.
+
+ \section1 Turning on Telemetry
+
+ To determine what data is transmitted to the backend storage, go to
+ \preferences > \uicontrol Telemetry > \uicontrol {Usage Statistics},
+ and then select \uicontrol {Enable telemetry}.
+
+ \image studio-preferences-telemetry-usage-statistics.webp {Usage Statistics}
+
+ \sa {Managing Data Collection}
+*/
diff --git a/doc/qtdesignstudio/src/qtdesignstudio-advanced.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-advanced.qdoc
index 7c11a4a7800..fbc362f6c8c 100644
--- a/doc/qtdesignstudio/src/qtdesignstudio-advanced.qdoc
+++ b/doc/qtdesignstudio/src/qtdesignstudio-advanced.qdoc
@@ -23,7 +23,7 @@
Some of the wizard templates create projects that contain UI files.
You should always edit UI files in the \l {2D}
and \l Properties view, to avoid breaking the code.
- \li \l{Manage Data Collection}
+ \li \l{Managing Data Collection}
You can enable \QDS to report crashes automatically. If you enable
the telemetry plugin, you can turn on the pseudonymous user
diff --git a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc
index 26145cb013b..a9b187d409f 100644
--- a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc
+++ b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc
@@ -217,9 +217,9 @@
\li Extending Component Functionality
\endomit
\li \l{UI Files}
- \li \l{Manage Data Collection}
+ \li \l{Managing Data Collection}
\list
- \li \l {Collect Usage Statistics}
+ \li \l {Collecting Usage Statistics}
\li \l {Collecting User Feedback}
\li \l {Reporting Crashes}
\endlist
@@ -257,7 +257,7 @@
\li \l{Supported Platforms}
\endlist
\li \l{Technical Support}
- \li \l{Acknowledgements}
+ \li \l{Licenses and Acknowledgments}
\li \l{What's New}
\endlist
*/
diff --git a/qbs/imports/QtcDocumentation.qbs b/qbs/imports/QtcDocumentation.qbs
index c5ddf497206..1b33f0af658 100644
--- a/qbs/imports/QtcDocumentation.qbs
+++ b/qbs/imports/QtcDocumentation.qbs
@@ -16,7 +16,7 @@ Product {
"IDE_DISPLAY_NAME=" + qtc.ide_display_name,
"IDE_CASED_ID=" + qtc.ide_cased_id,
"IDE_ID=" + qtc.ide_id,
- "QTCREATOR_COPYRIGHT_YEAR=" + qtc.qtcreator_copyright_year,
+ "QTCREATOR_COPYRIGHT=" + qtc.qtcreator_copyright_string,
"QTC_VERSION=" + qtc.qtcreator_version,
"QTC_VERSION_TAG=" + qtc.qtcreator_version,
"QT_INSTALL_DOCS=" + Qt.core.docPath,
diff --git a/qbs/modules/go/go.qbs b/qbs/modules/go/go.qbs
new file mode 100644
index 00000000000..63c792519c3
--- /dev/null
+++ b/qbs/modules/go/go.qbs
@@ -0,0 +1,99 @@
+import qbs.File
+import qbs.Probes
+
+Module {
+ property stringList architectures: []
+ property stringList platforms: []
+ property string magicPacketMarker: ""
+
+ Probes.BinaryProbe {
+ id: goProbe
+ names: "go"
+ }
+ property string goFilePath: goProbe.filePath
+
+ Probes.BinaryProbe {
+ id: upxProbe
+ names: "upx"
+ }
+ property string upxFilePath: upxProbe.filePath
+
+ validate: {
+ found = goProbe.found
+ if (!goProbe.found)
+ throw ("The go executable '" + goFilePath + "' does not exist.");
+ if (!upxProbe.found)
+ console.warn("The upx executable '" + upxFilePath + "' does not exist.");
+ if (architectures.length == 0)
+ console.warn("No architectures given.");
+ if (platforms.length == 0)
+ console.warn("No platforms given.");
+ if (magicPacketMarker === "")
+ console.warn("magicPacketMarker not set.")
+ }
+ FileTagger {
+ patterns: [ "*.go", "go.mod", "go.sum" ]
+ fileTags: [ "go_src" ]
+ }
+ Rule {
+ multiplex: true
+ outputArtifacts: {
+ var result = [];
+ for (var i = 0; i < product.go.architectures.length; ++i) {
+ var arch = product.go.architectures[i];
+ for (var j = 0; j < product.go.platforms.length; ++j) {
+ var plat = product.go.platforms[j];
+ var artifact = {
+ filePath: product.targetName + '-' + plat + '-' + arch,
+ fileTags: [ "application", plat, arch ]
+ };
+ result.push(artifact);
+ }
+ }
+ return result;
+ }
+
+ inputs: [ "go_src" ]
+ outputFileTags: [ "application" ].concat(architectures, platforms)
+ prepare: {
+ var commands = [];
+ var appOutputs = outputs.application || [];
+ for (var i = 0; i < appOutputs.length; ++i) {
+ var out = appOutputs[i];
+ for (var j = 0; j < product.go.architectures.length; ++j) {
+ var arch = product.go.architectures[j];
+ if (!out.fileTags.contains(arch))
+ continue;
+ for (var k = 0; k < product.go.platforms.length; ++k) {
+ var plat = product.go.platforms[k];
+ if (!out.fileTags.contains(plat))
+ continue;
+
+ var env = ["GOARCH=" + arch, "GOOS=" + plat];
+ var workDir = product.sourceDirectory;
+ var args = ['build', '-ldflags',
+ '-s -w -X main.MagicPacketMarker=' + product.go.magicPacketMarker,
+ '-o', out.filePath];
+ var cmd = new Command(product.go.goFilePath, args);
+ cmd.environment = env;
+ cmd.workingDirectory = workDir;
+ cmd.description = "building (with go) " + out.fileName;
+ cmd.highlight = "compiler";
+ commands.push(cmd);
+ if ((product.go.upxFilePath !== undefined
+ && File.exists(product.go.upxFilePath))
+ && (plat === 'linux' || (plat === 'windows' && arch === 'amd64'))) {
+ var upxCmd = new Command(product.go.upxFilePath, ['-9', out.filePath]);
+ upxCmd.environment = env;
+ upxCmd.workingDirectory = workDir;
+ upxCmd.description = "packaging executable " + out.fileName;
+ cmd.highlight = "filegen";
+ commands.push(upxCmd);
+ }
+ }
+ }
+ }
+ return commands;
+ }
+ }
+}
diff --git a/qbs/modules/pluginjson/pluginjson.qbs b/qbs/modules/pluginjson/pluginjson.qbs
index 43d5e7f0012..11bb481ac03 100644
--- a/qbs/modules/pluginjson/pluginjson.qbs
+++ b/qbs/modules/pluginjson/pluginjson.qbs
@@ -38,13 +38,14 @@ Module {
additionalProductTypes: ["qt_plugin_metadata"]
Rule {
- inputs: ["pluginJsonIn"]
+ inputs: ["pluginJsonIn", "pluginjson.license", "pluginjson.longDescription"]
+ multiplex: true
Artifact {
fileTags: ["qt_plugin_metadata"]
filePath: {
- var destdir = FileInfo.joinPaths(product.moduleProperty("Qt.core",
- "generatedHeadersDir"), input.fileName);
+ var destdir = FileInfo.joinPaths(product.Qt.core.generatedHeadersDir,
+ inputs.pluginJsonIn[0].fileName);
return destdir.replace(/\.[^\.]*$/,'')
}
}
@@ -60,7 +61,7 @@ Module {
var depdeps = deps[d].dependencies;
for (var dd in depdeps) {
if (depdeps[dd].name == 'pluginjson') {
- cmd.plugin_depends.push(deps[d].name);
+ cmd.plugin_depends.push(deps[d].name.toLowerCase());
break;
}
}
@@ -71,7 +72,7 @@ Module {
cmd.sourceCode = function() {
var i;
var vars = pluginJsonReplacements || {};
- var inf = new TextFile(input.filePath);
+ var inf = new TextFile(inputs.pluginJsonIn[0].filePath);
var all = inf.readAll();
// replace config vars
var qtcVersion = product.moduleProperty("qtc", "qtcreator_version");
@@ -81,22 +82,34 @@ Module {
vars['IDE_VERSION_MAJOR'] = product.moduleProperty("qtc", "ide_version_major");
vars['IDE_VERSION_MINOR'] = product.moduleProperty("qtc", "ide_version_minor");
vars['IDE_VERSION_RELEASE'] = product.moduleProperty("qtc", "ide_version_release");
- vars['IDE_COPYRIGHT_YEAR']
- = product.moduleProperty("qtc", "qtcreator_copyright_year")
+ vars['IDE_COPYRIGHT'] = product.moduleProperty("qtc", "ide_copyright_string");
if (!vars['QTC_PLUGIN_REVISION'])
vars['QTC_PLUGIN_REVISION'] = product.vcs ? (product.vcs.repoState || "") : "";
var deplist = [];
for (i in plugin_depends) {
- deplist.push(" { \"Name\" : \"" + plugin_depends[i] + "\", \"Version\" : \"" + qtcVersion + "\" }");
+ deplist.push(" { \"Id\" : \"" + plugin_depends[i] + "\", \"Version\" : \"" + qtcVersion + "\" }");
}
for (i in plugin_recommends) {
- deplist.push(" { \"Name\" : \"" + plugin_recommends[i] + "\", \"Version\" : \"" + qtcVersion + "\", \"Type\" : \"optional\" }");
+ deplist.push(" { \"Id\" : \"" + plugin_recommends[i] + "\", \"Version\" : \"" + qtcVersion + "\", \"Type\" : \"optional\" }");
}
for (i in plugin_test_depends) {
- deplist.push(" { \"Name\" : \"" + plugin_test_depends[i] + "\", \"Version\" : \"" + qtcVersion + "\", \"Type\" : \"test\" }");
+ deplist.push(" { \"Id\" : \"" + plugin_test_depends[i] + "\", \"Version\" : \"" + qtcVersion + "\", \"Type\" : \"test\" }");
}
deplist = deplist.join(",\n")
vars['IDE_PLUGIN_DEPENDENCIES'] = "\"Dependencies\" : [\n" + deplist + "\n ]";
+ vars['LICENSE'] = '"No license"';
+ var licenseInputs = inputs["pluginjson.license"];
+ if (licenseInputs) {
+ var licFile = new TextFile(licenseInputs[0].filePath);
+ vars['LICENSE'] = JSON.stringify(licFile.readAll());
+ }
+ vars['LONG_DESCRIPTION'] = '""';
+ var longDescriptionInputs = inputs["pluginjson.longDescription"];
+ if (longDescriptionInputs) {
+ var longDescFile = new TextFile(longDescriptionInputs[0].filePath);
+ vars['LONG_DESCRIPTION'] = JSON.stringify(longDescFile.readAll());
+ }
+
for (i in vars) {
all = all.replace(new RegExp('\\\$\\{' + i + '(?!\w)\\}', 'g'), vars[i]);
}
@@ -109,4 +122,3 @@ Module {
}
}
}
-
diff --git a/qbs/modules/qtc/qtc.qbs b/qbs/modules/qtc/qtc.qbs
index 86484cdef70..0071c2f840c 100644
--- a/qbs/modules/qtc/qtc.qbs
+++ b/qbs/modules/qtc/qtc.qbs
@@ -4,21 +4,21 @@ import qbs.FileInfo
import qbs.Utilities
Module {
- property string qtcreator_display_version: '14.0.2'
- property string ide_version_major: '14'
+ property string qtcreator_display_version: '15.0.0'
+ property string ide_version_major: '15'
property string ide_version_minor: '0'
- property string ide_version_release: '2'
+ 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: '14'
+ property string ide_compat_version_major: '15'
property string ide_compat_version_minor: '0'
property string ide_compat_version_release: '0'
property string qtcreator_compat_version: ide_compat_version_major + '.'
+ ide_compat_version_minor + '.' + ide_compat_version_release
- property string qtcreator_copyright_year: '2024'
- property string qtcreator_copyright_string: "(C) " + qtcreator_copyright_year + " The Qt Company Ltd"
+ property string ide_author: "The Qt Company Ltd. and other contributors."
+ property string ide_copyright_string: "Copyright (C) The Qt Company Ltd. and other contributors."
property string ide_display_name: 'Qt Creator'
property string ide_id: 'qtcreator'
@@ -72,12 +72,13 @@ Module {
property bool preferSystemSyntaxHighlighting: true
- property bool withPluginTests: Environment.getEnv("TEST") || qbs.buildVariant === "debug"
- property bool testsEnabled: withPluginTests // TODO: compat, remove
- property bool withAutotests: project.withAutotests // FIXME: withPluginTests
+ property bool withAllTests: Environment.getEnv("TEST") || qbs.buildVariant === "debug"
+ property bool withPluginTests: withAllTests
+ property bool withAutotests: withAllTests
property stringList generalDefines: [
"QT_CREATOR",
+ 'IDE_APP_ID="org.qt-project.qtcreator"',
'IDE_LIBRARY_BASENAME="' + libDirName + '"',
'RELATIVE_PLUGIN_PATH="' + FileInfo.relativePath('/' + ide_bin_path,
'/' + ide_plugin_path) + '"',
@@ -91,6 +92,7 @@ Module {
"QT_NO_FOREACH",
"QT_DISABLE_DEPRECATED_BEFORE=0x050900",
"QT_USE_QSTRINGBUILDER",
+ "QT_NO_QSNPRINTF",
].concat(withPluginTests ? ["WITH_TESTS"] : [])
.concat(qbs.toolchain.contains("msvc") ? ["_CRT_SECURE_NO_WARNINGS"] : [])
}
diff --git a/qt_attributions.json b/qt_attributions.json
index 5f9e1e5343d..008ff353943 100644
--- a/qt_attributions.json
+++ b/qt_attributions.json
@@ -612,11 +612,11 @@
"QDocModule": "qtcreator",
"QtParts": ["tools"],
"QtUsage": "Used for async/await support in Lua modules.",
- "Path": "src/plugins/lua/bindings",
+ "Path": "src/plugins/lua/scripts",
"Description": "lua-async-await implements the async/await pattern in Lua.",
"Homepage": "https://github.com/ms-jpq/lua-async-await",
"License": "MIT License",
- "LicenseFile": "src/plugins/lua/bindings/ASYNC-LICENSE.txt",
+ "LicenseFile": "src/plugins/lua/scripts/ASYNC-LICENSE.txt",
"Copyright": "Copyright (c) 2008 Paul Evans"
},
{
@@ -625,11 +625,11 @@
"QDocModule": "qtcreator",
"QtParts": ["tools"],
"QtUsage": "Used for pretty printing from Lua scripts.",
- "Path": "share/qtcreator/lua-plugins/luatests",
+ "Path": "src/plugins/lua/scripts",
"Description": "inspect.lua is a library for pretty printing complex objects in Lua.",
"Homepage": "https://github.com/kikito/inspect.lua",
"License": "MIT License",
- "LicenseFile": "share/qtcreator/lua-plugins/luatests/INSPECT-LICENSE.txt",
+ "LicenseFile": "src/plugins/lua/scripts/INSPECT-LICENSE.txt",
"Copyright": "Copyright (c) 2022 Enrique García Cota"
},
{
@@ -645,6 +645,20 @@
"License": "BSD 3-Clause \"New\" or \"Revised\" License",
"LicenseFile": "src/libs/3rdparty/zlib/LICENSE",
"Copyright": "Copyright (C) 1995-2024 Jean-loup Gailly and Mark Adler"
+ },
+ {
+ "Id": "tika-mimetypes",
+ "Name": "Apache Tika MimeType Definitions",
+ "QDocModule": "qtcreator",
+ "QtParts": ["tools"],
+ "QtUsage": "Used for resolving file types by MIME type information.",
+ "Path": "src/libs/3rdparty/tika",
+ "Description": "The Apache Tika MimeTypes list many known MIME types and how to match files (using globs and/or 'magic' rules for the file contents). See qtbase/src/corelib/mimetypes/3rdparty/ for more information, also on how to update the file.",
+ "Homepage": "https://github.com/apache/tika/tree/main/tika-core/src/main/resources/org/apache/tika/mime",
+ "Version": "019041117149667bc4d18fabf222a0670d407959",
+ "DownloadLocation": "https://github.com/apache/tika/blob/019041117149667bc4d18fabf222a0670d407959/tika-core/src/main/resources/org/apache/tika/mime/tika-mimetypes.xml",
+ "License": "Apache License 2.0",
+ "LicenseFile": "doc/qtcreator/src/overview/license-Apache-2.0.txt",
+ "Copyright": "Copyright 2011 The Apache Software Foundation"
}
]
-
diff --git a/qtcreator.qbs b/qtcreator.qbs
index 21f610de563..052350b77e0 100644
--- a/qtcreator.qbs
+++ b/qtcreator.qbs
@@ -1,7 +1,6 @@
Project {
name: "Qt Creator"
minimumQbsVersion: "2.0.0"
- property bool withAutotests: qbs.buildVariant === "debug" // TODO: compat, remove
property path ide_source_tree: path
property pathList additionalPlugins: []
property pathList additionalLibs: []
diff --git a/scripts/axivion2tasks.py b/scripts/axivion2tasks.py
new file mode 100755
index 00000000000..87eecb79f3d
--- /dev/null
+++ b/scripts/axivion2tasks.py
@@ -0,0 +1,67 @@
+#!/usr/bin/env python
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+'''
+axivion2tasks.py - Convert Axivion JSON warnings into Qt Creator task files.
+
+Process a file produced by an Axivion JSON export
+
+Only style violations are implemented ATM.
+
+SYNOPSIS
+
+ axivion2tasks.py < json-file > taskfile
+'''
+
+import json
+import sys
+from enum import Enum, auto
+
+
+SV_MESSAGE_COLUMN = "message"
+SV_PATH_COLUMN = "path"
+SV_LINE_NUMBER_COLUMN = "line"
+
+
+class Type(Enum):
+ Unknown = auto()
+ StyleViolation = auto()
+
+
+def columns(data):
+ """Extract the column keys."""
+ result = []
+ for col in data["columns"]:
+ result.append(col["key"])
+ return set(result)
+
+
+def detect_type(data):
+ """Determine file type."""
+ keys = columns(data)
+ if set([SV_MESSAGE_COLUMN, SV_PATH_COLUMN, SV_LINE_NUMBER_COLUMN]) <= keys:
+ return Type.StyleViolation
+ return Type.Unknown
+
+
+def print_warning(path, line_number, text):
+ print(f"{path}\t{line_number}\twarn\t{text}")
+
+
+def print_style_violations(data):
+ rows = data["rows"]
+ for row in rows:
+ print_warning(row[SV_PATH_COLUMN], row[SV_LINE_NUMBER_COLUMN], row[SV_MESSAGE_COLUMN])
+ return len(rows)
+
+
+if __name__ == '__main__':
+ data = json.load(sys.stdin)
+
+ count = 0
+ file_type = detect_type(data)
+ if file_type == Type.StyleViolation:
+ count = print_style_violations(data)
+ if count:
+ print(f"{count} issue(s) found.", file=sys.stderr)
diff --git a/scripts/build.py b/scripts/build.py
index 094cc9d6c4b..6f2cd39e668 100755
--- a/scripts/build.py
+++ b/scripts/build.py
@@ -10,20 +10,13 @@ import collections
import os
import shlex
import shutil
+import sys
import common
def existing_path(path):
return path if os.path.exists(path) else None
-def default_python3():
- path_system = os.path.join('/usr', 'bin') if not common.is_windows_platform() else None
- path = os.environ.get('PYTHON3_PATH') or path_system
- postfix = '.exe' if common.is_windows_platform() else ''
- return (path if not path
- else (existing_path(os.path.join(path, 'python3' + postfix)) or
- existing_path(os.path.join(path, 'python' + postfix))))
-
def get_arguments():
parser = argparse.ArgumentParser(description='Build Qt Creator for packaging')
parser.add_argument('--src', help='path to sources', required=True)
@@ -52,7 +45,7 @@ def get_arguments():
help='Path to python libraries for use by cdbextension (Windows)')
parser.add_argument('--python3', help='File path to python3 executable for generating translations',
- default=default_python3())
+ default=sys.executable)
parser.add_argument('--no-qtcreator',
help='Skip Qt Creator build (only build separate tools)',
@@ -279,33 +272,31 @@ def package_qtcreator(args, paths):
if not args.no_cdb:
common.check_print_call(command + [paths.qtcreatorcdbext_install])
+ zip = common.sevenzip_command(args.zip_threads)
if not args.no_zip:
if not args.no_qtcreator:
- common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads,
- os.path.join(paths.result, 'qtcreator' + args.zip_infix + '.7z'),
- zipPatternForApp(paths)],
+ common.check_print_call(zip
+ + [os.path.join(paths.result, 'qtcreator' + args.zip_infix + '.7z'),
+ zipPatternForApp(paths)],
paths.install)
- common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads,
- os.path.join(paths.result, 'qtcreator' + args.zip_infix + '_dev.7z'),
- '*'],
+ common.check_print_call(zip
+ + [os.path.join(paths.result, 'qtcreator' + args.zip_infix + '_dev.7z'),
+ '*'],
paths.dev_install)
if args.with_debug_info:
- common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads,
- os.path.join(paths.result, 'qtcreator' + args.zip_infix + '-debug.7z'),
- '*'],
+ common.check_print_call(zip
+ + [os.path.join(paths.result, 'qtcreator' + args.zip_infix + '-debug.7z'),
+ '*'],
paths.debug_install)
if common.is_windows_platform():
- # use -mf=off to avoid usage of the ARM executable compression filter,
- # which cannot be extracted by the p7zip version on the machine doing
- # the repository builds
- common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads, '-mf=off',
- os.path.join(paths.result, 'wininterrupt' + args.zip_infix + '.7z'),
- '*'],
+ common.check_print_call(zip
+ + [os.path.join(paths.result, 'wininterrupt' + args.zip_infix + '.7z'),
+ '*'],
paths.wininterrupt_install)
if not args.no_cdb:
- common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads, '-mf=off',
- os.path.join(paths.result, 'qtcreatorcdbext' + args.zip_infix + '.7z'),
- '*'],
+ common.check_print_call(zip
+ + [os.path.join(paths.result, 'qtcreatorcdbext' + args.zip_infix + '.7z'),
+ '*'],
paths.qtcreatorcdbext_install)
if common.is_mac_platform() and not args.no_qtcreator:
@@ -319,12 +310,12 @@ def package_qtcreator(args, paths):
app = apps[0]
common.codesign(os.path.join(signed_install_path, app))
if not args.no_zip:
- common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads,
- os.path.join(paths.result, 'qtcreator' + args.zip_infix + '-signed.7z'),
- app],
+ common.check_print_call(zip
+ + [os.path.join(paths.result, 'qtcreator' + args.zip_infix + '-signed.7z'),
+ app],
signed_install_path)
if not args.no_dmg:
- common.check_print_call(['python', '-u',
+ common.check_print_call([args.python3, '-u',
os.path.join(paths.src, 'scripts', 'makedmg.py'),
'qt-creator' + args.zip_infix + '.dmg',
'Qt Creator',
diff --git a/scripts/build_plugin.py b/scripts/build_plugin.py
index 9469fc5dfea..81d80bd2561 100755
--- a/scripts/build_plugin.py
+++ b/scripts/build_plugin.py
@@ -147,16 +147,17 @@ def package(args, paths):
if common.is_windows_platform() and args.sign_command:
command = shlex.split(args.sign_command)
common.check_print_call(command + [paths.install])
- common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads, os.path.join(paths.result, args.name + '.7z'), '*'],
+ zip = common.sevenzip_command(args.zip_threads)
+ common.check_print_call(zip + [os.path.join(paths.result, args.name + '.7z'), '*'],
paths.install)
if os.path.exists(paths.dev_install): # some plugins might not provide anything in Devel
- common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads,
- os.path.join(paths.result, args.name + '_dev.7z'), '*'],
+ common.check_print_call(zip
+ + [os.path.join(paths.result, args.name + '_dev.7z'), '*'],
paths.dev_install)
# check for existence - the DebugInfo install target doesn't work for telemetry plugin
if args.with_debug_info and os.path.exists(paths.debug_install):
- common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads,
- os.path.join(paths.result, args.name + '-debug.7z'), '*'],
+ common.check_print_call(zip
+ + [os.path.join(paths.result, args.name + '-debug.7z'), '*'],
paths.debug_install)
if common.is_mac_platform() and common.codesign_call():
if args.keychain_unlock_script:
@@ -169,9 +170,9 @@ def package(args, paths):
app = apps[0]
common.conditional_sign_recursive(os.path.join(signed_install_path, app),
lambda ff: ff.endswith('.dylib'))
- common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads,
- os.path.join(paths.result, args.name + '-signed.7z'),
- app],
+ common.check_print_call(zip
+ + [os.path.join(paths.result, args.name + '-signed.7z'),
+ app],
signed_install_path)
def get_paths(args):
diff --git a/scripts/build_sdktool.py b/scripts/build_sdktool.py
new file mode 100755
index 00000000000..d831492939a
--- /dev/null
+++ b/scripts/build_sdktool.py
@@ -0,0 +1,186 @@
+#!/usr/bin/env python3
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+from __future__ import annotations
+import argparse
+import os
+from pathlib import Path
+from typing import NamedTuple
+
+from common import (is_linux_platform, is_mac_platform, is_windows_platform,
+ download_and_extract, check_print_call, sevenzip_command,
+ get_single_subdir)
+
+
+class BuildParams(NamedTuple):
+ src_path: Path
+ build_path: Path
+ target_path: Path
+ make_command: str
+ universal: bool = False
+ platform: str | None = None
+
+
+def qt_static_configure_options() -> list[str]:
+ return ['-release', '-opensource', '-confirm-license', '-accessibility',
+ '-no-gui',
+ '-no-openssl',
+ '-no-feature-sql',
+ '-qt-zlib',
+ '-nomake', 'examples',
+ '-nomake', 'tests',
+ '-static'] + qt_static_platform_configure_options()
+
+
+def qt_static_platform_configure_options() -> list[str]:
+ if is_windows_platform():
+ return ['-static-runtime', '-no-icu']
+ if is_linux_platform():
+ return ['-no-icu', '-no-glib', '-qt-zlib', '-qt-pcre', '-qt-doubleconversion']
+ return []
+
+
+def get_qt_src_path(qt_build_base: Path) -> Path:
+ return qt_build_base / 'src'
+
+
+def get_qt_build_path(qt_build_base: Path) -> Path:
+ return qt_build_base / 'build'
+
+
+def get_qt_install_path(qt_build_base: Path) -> Path:
+ return qt_build_base / 'install'
+
+
+def configure_qt(params: BuildParams, src: Path, build: Path, install: Path) -> None:
+ build.mkdir(parents=True, exist_ok=True)
+ configure = src / "configure"
+ cmd = [str(configure), "-prefix", str(install)] + qt_static_configure_options()
+ if params.platform:
+ cmd.extend(['-platform', params.platform])
+ if params.universal:
+ cmd.extend(['--', '-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64'])
+ check_print_call(cmd, cwd=build)
+
+
+def build_qt(params: BuildParams, build: Path) -> None:
+ check_print_call([params.make_command], cwd=build)
+
+
+def install_qt(params: BuildParams, build: Path) -> None:
+ check_print_call([params.make_command, 'install'], cwd=build)
+
+
+def build_sdktool_impl(params: BuildParams, qt_install_path: Path) -> None:
+ params.build_path.mkdir(parents=True, exist_ok=True)
+ cmake_args = [
+ 'cmake', '-DCMAKE_PREFIX_PATH=' + str(qt_install_path), '-DCMAKE_BUILD_TYPE=Release'
+ ]
+ # force MSVC on Windows, because it looks for GCC in the PATH first,
+ # even if MSVC is first mentioned in the PATH...
+ # TODO would be nicer if we only did this if cl.exe is indeed first in the PATH
+ if is_windows_platform():
+ cmake_args += ['-DCMAKE_C_COMPILER=cl', '-DCMAKE_CXX_COMPILER=cl']
+ cmake_args += ['-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded']
+
+ if params.universal:
+ cmake_args += ['-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64']
+
+ cmd = cmake_args + ['-G', 'Ninja', str(params.src_path)]
+ check_print_call(cmd, cwd=params.build_path)
+ check_print_call(['cmake', '--build', '.'], cwd=params.build_path)
+ cmd = ['cmake', '--install', '.', '--prefix', str(params.target_path)]
+ check_print_call(cmd, cwd=params.build_path)
+
+
+def sign_sdktool(params: BuildParams,
+ environment: dict[str, str]) -> None:
+ signing_identity = environment.get('SIGNING_IDENTITY')
+ if not is_mac_platform() or not signing_identity:
+ return
+ check_print_call(['codesign', '-o', 'runtime', '--force', '-s', signing_identity,
+ '-v', 'sdktool'],
+ cwd=params.target_path,
+ env=environment)
+
+
+def build_sdktool(
+ qt_src_url: str,
+ qt_build_base: Path,
+ sdktool_src_path: Path,
+ sdktool_build_path: Path,
+ sdktool_target_path: Path,
+ make_command: str,
+ universal: bool = False,
+ platform: str | None = None,
+ environment: dict[str, str] | None = None
+) -> None:
+ if not environment:
+ environment = os.environ.copy()
+ params = BuildParams(
+ src_path=sdktool_src_path,
+ build_path=sdktool_build_path,
+ target_path=sdktool_target_path,
+ make_command=make_command,
+ platform=platform,
+ universal=universal
+ )
+ qt_src = get_qt_src_path(qt_build_base)
+ qt_build = get_qt_build_path(qt_build_base)
+ qt_install = get_qt_install_path(qt_build_base)
+ download_and_extract([qt_src_url], qt_src, qt_build_base)
+ qt_src = get_single_subdir(qt_src)
+ configure_qt(params, qt_src, qt_build, qt_install)
+ build_qt(params, qt_build)
+ install_qt(params, qt_build)
+ build_sdktool_impl(params, qt_install)
+ sign_sdktool(params, environment)
+
+
+def zip_sdktool(
+ sdktool_target_path: Path, out_7zip: Path
+) -> None:
+ glob = "*.exe" if is_windows_platform() else "*"
+ check_print_call(
+ cmd=sevenzip_command() + [str(out_7zip), glob],
+ cwd=sdktool_target_path
+ )
+
+
+def get_arguments() -> argparse.Namespace:
+ parser = argparse.ArgumentParser(description='Build sdktool')
+ parser.add_argument('--qt-url', help='URL to Qt sources', required=True)
+ parser.add_argument(
+ '--qt-build', help='Path that is used for building Qt', required=True, type=Path
+ )
+ parser.add_argument('--src', help='Path to sdktool sources', required=True, type=Path)
+ parser.add_argument(
+ '--build', help='Path that is used for building sdktool', required=True, type=Path
+ )
+ parser.add_argument(
+ '--install', help='Path that is used for installing sdktool', required=True, type=Path
+ )
+ parser.add_argument('--make-command', help='Make command to use for Qt', required=True)
+ parser.add_argument('--platform', help='Platform argument for configuring Qt',
+ required=False)
+ parser.add_argument('--universal', help='Build universal binaries on macOS',
+ action='store_true', default=False, required=False)
+ return parser.parse_args()
+
+
+def main() -> None:
+ args = get_arguments()
+ build_sdktool(
+ qt_src_url=args.qt_url,
+ qt_build_base=args.qt_build,
+ sdktool_src_path=args.src,
+ sdktool_build_path=args.build,
+ sdktool_target_path=args.install,
+ make_command=args.make_command,
+ platform=args.platform
+ )
+
+
+if __name__ == '__main__':
+ main()
diff --git a/scripts/common.py b/scripts/common.py
index 081469963f1..1b9edd780a8 100644
--- a/scripts/common.py
+++ b/scripts/common.py
@@ -1,12 +1,18 @@
# Copyright (C) 2016 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+from __future__ import annotations
import argparse
+import asyncio
+from itertools import islice
import os
import locale
+from pathlib import Path
import shutil
import subprocess
import sys
+from urllib.parse import urlparse
+import urllib.request
encoding = locale.getdefaultlocale()[1]
if not encoding:
@@ -27,13 +33,13 @@ def to_posix_path(path):
return path.replace('\\', '/')
return path
-def check_print_call(command, workdir=None, env=None):
+def check_print_call(command, cwd=None, env=None):
print('------------------------------------------')
print('COMMAND:')
print(' '.join(['"' + c.replace('"', '\\"') + '"' for c in command]))
- print('PWD: "' + (workdir if workdir else os.getcwd()) + '"')
+ print('PWD: "' + (str(cwd) if cwd else os.getcwd()) + '"')
print('------------------------------------------')
- subprocess.check_call(command, cwd=workdir, env=env)
+ subprocess.check_call(command, cwd=cwd, shell=is_windows_platform(), env=env)
def get_git_SHA(path):
@@ -56,6 +62,26 @@ def get_commit_SHA(path):
git_sha = f.read().strip()
return git_sha
+
+def get_single_subdir(path: Path):
+ entries = list(islice(path.iterdir(), 2))
+ if len(entries) == 1:
+ return path / entries[0]
+ return path
+
+
+def sevenzip_command(threads=None):
+ # use -mf=off to avoid usage of the ARM executable compression filter,
+ # which cannot be extracted by p7zip
+ # use -snl to preserve symlinks even if their target doesn't exist
+ # which is important for the _dev package on Linux
+ # (only works with official/upstream 7zip)
+ command = ['7z', 'a', '-mf=off', '-snl']
+ if threads:
+ command.extend(['-mmt' + threads])
+ return command
+
+
# copy of shutil.copytree that does not bail out if the target directory already exists
# and that does not create empty directories
def copytree(src, dst, symlinks=False, ignore=None):
@@ -105,6 +131,79 @@ def copytree(src, dst, symlinks=False, ignore=None):
if errors:
raise shutil.Error(errors)
+
+def extract_file(archive: Path, target: Path) -> None:
+ cmd_args = []
+ if archive.suffix == '.tar':
+ cmd_args = ['tar', '-xf', str(archive)]
+ elif archive.suffixes[-2:] == ['.tar', '.gz'] or archive.suffix == '.tgz':
+ cmd_args = ['tar', '-xzf', str(archive)]
+ elif archive.suffixes[-2:] == ['.tar', '.xz']:
+ cmd_args = ['tar', '-xf', str(archive)]
+ elif archive.suffixes[-2:] == ['.tar', '.bz2'] or archive.suffix == '.tbz':
+ cmd_args = ['tar', '-xjf', str(archive)]
+ elif archive.suffix in ('.7z', '.zip', '.gz', '.xz', '.bz2', '.qbsp'):
+ cmd_args = ['7z', 'x', str(archive)]
+ else:
+ raise(
+ "Extract fail: %s. Not an archive or appropriate extractor was not found", str(archive)
+ )
+ return
+ target.mkdir(parents=True, exist_ok=True)
+ subprocess.check_call(cmd_args, cwd=target)
+
+
+async def download(url: str, target: Path) -> None:
+ print(('''
+- Starting download {}
+ -> {}''').strip().format(url, str(target)))
+ # Since urlretrieve does blocking I/O it would prevent parallel downloads.
+ # Run in default thread pool.
+ temp_target = target.with_suffix(target.suffix + '-part')
+ loop = asyncio.get_running_loop()
+ await loop.run_in_executor(None, urllib.request.urlretrieve, url, str(temp_target))
+ temp_target.rename(target)
+ print('+ finished downloading {}'.format(str(target)))
+
+
+def download_and_extract(
+ urls: list[str],
+ target: Path,
+ temp: Path,
+ skip_existing: bool = False
+) -> None:
+ download_and_extract_tuples([(url, target) for url in urls],
+ temp,
+ skip_existing)
+
+
+def download_and_extract_tuples(
+ urls_and_targets: list[tuple[str, Path]],
+ temp: Path,
+ skip_existing: bool = False
+) -> None:
+ temp.mkdir(parents=True, exist_ok=True)
+ target_tuples : list[tuple[Path, Path]] = []
+ # TODO make this work with file URLs, which then aren't downloaded
+ # but just extracted
+ async def impl():
+ tasks : list[asyncio.Task] = []
+ for (url, target_path) in urls_and_targets:
+ u = urlparse(url)
+ filename = Path(u.path).name
+ target_file = temp / filename
+ target_tuples.append((target_file, target_path))
+ if skip_existing and target_file.exists():
+ print('Skipping download of {}'.format(url))
+ else:
+ tasks.append(asyncio.create_task(download(url, target_file)))
+ for task in tasks:
+ await task
+ asyncio.run(impl())
+ for (file, target) in target_tuples:
+ extract_file(file, target)
+
+
def get_qt_install_info(qmake_bin):
output = subprocess.check_output([qmake_bin, '-query'])
decoded_output = output.decode(encoding) if encoding else output
diff --git a/scripts/fixCopyright.sh b/scripts/fixCopyright.sh
deleted file mode 100755
index c5026b0c61c..00000000000
--- a/scripts/fixCopyright.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-
-# Copyright (C) 2016 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-
-# Prepend a copyright header to all files given on the command line.
-# Sample usage:
-# find . -type f -name \*.cpp -o -name \*.h | \
-# xargs ~/bin/hasCopyright.pl | grep ": No copyright, NOK" | grep "^./src/" | \
-# cut -d ':' -f1 | xargs ~/bin/fixCopyright.sh dist/copyright_template.txt
-
-COPYRIGHT_HEADER=$1
-
-test -f "$COPYRIGHT_HEADER" || exit 16
-shift
-
-echo "Using $COPYRIGHT_HEADER..."
-
-WORKDIR=`mktemp -d`
-test -d "$WORKDIR" || exit 17
-
-for i in $@ ; do
- echo -n "Fixing $i..."
- if test -f "$i" && test -s "$i" ; then
- BASENAME=`basename "$i"`
- TMP_NAME="$WORKDIR/$BASENAME"
- sed '/./,$!d' "$i" > "$TMP_NAME" # remove leading empty lines
- cat "$COPYRIGHT_HEADER" "$TMP_NAME" > "$i"
- rm "$TMP_NAME"
- fi
- echo done.
-done
-
-rmdir "$WORKDIR"
diff --git a/scripts/hasCopyright.pl b/scripts/hasCopyright.pl
deleted file mode 100755
index b6968a2782d..00000000000
--- a/scripts/hasCopyright.pl
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/usr/bin/perl -w
-
-# Copyright (C) 2016 The Qt Company Ltd.
-# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-
-# Report possible problems with copy right headers
-#
-# Sample usage:
-# find . -type f | xargs ./scripts/hasCopyright.pl
-
-use strict;
-
-shift; # remove script
-
-sub canIgnoreNoCopyright {
- my $file = shift;
- return 1 if ($file =~ /\.png$/ or
- $file =~ /\.ico$/ or
- $file =~ /\.svg$/ or
- $file =~ /\.xpm$/ or
- $file =~ /\.dia$/ or
- $file =~ /\/Doxyfile$/ or
- $file =~ /\.qmlproject$/ or
- $file =~ /\.pr[oi]$/ or
- $file =~ /\.qbs$/ or
- $file =~ /\.qrc$/ or
- $file =~ /\.txt$/i or
- $file =~ /\/README[^\/]*$/i or
- $file =~ /\/LICENSE.LGPLv21$/i or
- $file =~ /\/LICENSE.LGPLv3$/i or
- $file =~ /\.ui$/i or
- $file =~ /\.xml$/ or
- $file =~ /\.css$/ or
- $file =~ /\.metainfo$/ or
- $file =~ /\.json$/ or
- $file =~ /\.pl$/ or
- $file =~ /\.py$/ or
- $file =~ /\.sh$/ or
- $file =~ /\.bat$/ or
- $file =~ /\.patch$/ or
- $file =~ /\.sed$/ or
- $file =~ /\.pro\.user$/ or
- $file =~ /\.plist$/ or
- $file =~ /\.qdocconf$/i or
- $file =~ /\.qdocinc/);
- return 0;
-}
-
-while (1) {
- my $file = shift;
- last unless $file;
-
- my $hasCopyright = 0;
- my $hasCurrent = 0;
- my $hasContact = 0;
- my $hasCommercial = 0;
- my $hasLGPL = 0;
- my $hasGPL = 0;
- my $hasCompany = 0;
- my $linecount = 0;
-
- if ($file !~ /\.png$/) {
- open(my $fh, "<", $file) or die "Could not open $file.\n";
-
- while (<$fh>) {
- $linecount++;
- last if ($linecount > 50);
-
- $hasCopyright = 1 if $_ =~ /Copyright/i;
- $hasCurrent = 1 if $_ =~ /\(c\).*\s2015/i;
-
- $hasContact = 1 if $_ =~ /Contact: http:\/\/www.qt-project.org\/legal/;
- $hasCommercial = 1 if $_ =~ /Commercial (License )?Usage/;
- $hasCompany = 1 if $_ =~ /The Qt Company Ltd/;
- $hasLGPL = 1 if $_ =~ /GNU Lesser General Public License Usage/;
- $hasGPL = 1 if $_ =~ /GNU General Public License Usage/;
- }
- close $fh;
- }
-
- unless ($hasCopyright) {
- print "$file\t";
- if (canIgnoreNoCopyright($file)) {
- print "Warning\t";
- } else {
- print "ERROR\t";
- }
- print "No copyright\n";
- next;
- }
-
- unless ($hasCurrent) {
- print "$file\tERROR\tcopyright outdated\n";
- next;
- }
-
- unless ($hasCompany) {
- print "$file\tERROR\tNo The Qt Company\n";
- next;
- }
-
- if (!$hasContact && $file !~ /\.json\.in$/) {
- print "$file\tERROR\tWrong contact\n";
- next;
- }
-
- unless ($hasCommercial) {
- print "$file\tERROR\tNo commercial license\n";
- next;
- }
-
- unless ($hasLGPL) {
- print "$file\tERROR\tNo LGPL license\n";
- next;
- }
-
- if ($hasGPL) {
- print "$file\tERROR\tHas GPL license\n";
- next;
- }
-
- print "$file\tinfo\tCopyright OK\n";
-
-} # loop over files
-
-exit 0;
diff --git a/scripts/install_qt.py b/scripts/install_qt.py
new file mode 100755
index 00000000000..777349c91d0
--- /dev/null
+++ b/scripts/install_qt.py
@@ -0,0 +1,103 @@
+#!/usr/bin/env python3
+# Copyright (C) 2024 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+from __future__ import annotations
+import argparse
+from common import download_and_extract_tuples
+from pathlib import Path
+import subprocess
+import sys
+from tempfile import TemporaryDirectory
+from typing import Optional
+
+
+def get_arguments() -> argparse.Namespace:
+ parser = argparse.ArgumentParser(description='Install Qt from individual module archives')
+ parser.add_argument('--qt-path', help='path to Qt', type=Path, required=True)
+ parser.add_argument('--qt-module', help='Qt module package url (.7z) needed for building',
+ action='append', dest='qt_modules', default=[])
+
+ parser.add_argument('--base-url', help='Base URL for given module_name(s)')
+ parser.add_argument(
+ 'module_name',
+ help='Name of Qt module to install, based on --base-url and --base-url-postfix',
+ nargs='*'
+ )
+ parser.add_argument(
+ '--base-url-postfix',
+ help='Postfix to add to URLs constructed from --base-url and given module_name(s)',
+ default=''
+ )
+
+ # Linux
+ parser.add_argument('--icu7z', help='a file or url where to get ICU libs as 7z')
+
+ args = parser.parse_args(sys.argv[1:])
+
+ return args
+
+
+def patch_qt(qt_path: Path) -> None:
+ print("##### patch Qt #####")
+ qmake_binary = qt_path / 'bin' / 'qmake'
+ # write qt.conf
+ with (qt_path / 'bin' / 'qt.conf').open('w', encoding='utf-8') as qt_conf_file:
+ qt_conf_file.write('[Paths]\n')
+ qt_conf_file.write('Prefix=..\n')
+ subprocess.check_call([str(qmake_binary), '-query'], cwd=qt_path)
+
+
+def install_qt(
+ qt_path: Path,
+ qt_modules: list[str],
+ icu_url: Optional[str] = None
+) -> None:
+ """
+ Install Qt to directory qt_path with the specified module and library packages.
+
+ Args:
+ qt_path: File system path to Qt (target install directory)
+ qt_modules: List of Qt module package URLs (.7z)
+ icu_url: Local or remote URI to Linux ICU libraries (.7z)
+ temp_path: Temporary path used for saving downloaded archives
+
+ Raises:
+ SystemExit: When qt_modules list is empty
+
+ """
+ if not qt_modules:
+ raise SystemExit("No modules specified in qt_modules")
+ qt_path = qt_path.resolve()
+ need_to_install_qt = not qt_path.exists()
+
+ with TemporaryDirectory() as temporary_dir:
+ if need_to_install_qt:
+ url_target_tuples = [(url, qt_path) for url in qt_modules]
+ if icu_url:
+ url_target_tuples.append((icu_url, qt_path / 'lib'))
+ download_and_extract_tuples(url_target_tuples, Path(temporary_dir))
+ patch_qt(qt_path)
+
+
+def main() -> None:
+ """Main"""
+ args: argparse.Namespace = get_arguments()
+ # Check that qt_module(s) or base-url/module_name(s) combo is specified
+ if not args.qt_modules and not (args.base_url and args.module_name):
+ raise SystemExit("'qt-module(s)' and/or 'base-url' with 'module_name(s)' required")
+ # Create the list of modules from qt_modules + module_names with base_url and postfix
+ qt_modules: list[str] = args.qt_modules
+ if args.base_url and args.module_name:
+ for module in args.module_name:
+ qt_modules += [args.base_url + "/" + module + "/" + module + args.base_url_postfix]
+
+ install_qt(
+ qt_path=args.qt_path,
+ qt_modules=qt_modules,
+ icu_url=args.icu7z
+ )
+
+
+if __name__ == '__main__':
+ main()
diff --git a/share/qtcreator/CMakeLists.txt b/share/qtcreator/CMakeLists.txt
index d0b5d2f7266..03a8ae2b75f 100644
--- a/share/qtcreator/CMakeLists.txt
+++ b/share/qtcreator/CMakeLists.txt
@@ -5,6 +5,7 @@ set(resource_directories
indexer_preincludes
jsonschemas
lua-plugins
+ lua-lupdate
modeleditor
qmldesigner
qmlicons
diff --git a/share/qtcreator/android/sdk_definitions.json b/share/qtcreator/android/sdk_definitions.json
index ed1e42402f3..80c41bfd84a 100644
--- a/share/qtcreator/android/sdk_definitions.json
+++ b/share/qtcreator/android/sdk_definitions.json
@@ -9,32 +9,28 @@
"mac_sha256": "7bc5c72ba0275c80a8f19684fb92793b83a6b5c94d4d179fc5988930282d7e64"
},
"sdk_essential_packages": {
- "default": ["platform-tools", "platforms;android-31", "cmdline-tools;latest"],
+ "default": ["platform-tools", "cmdline-tools;latest", "emulator"],
"linux": [],
"mac": [],
"windows": ["extras;google;usb_driver"]
}
},
"specific_qt_versions": [
- {
- "versions": ["default"],
- "sdk_essential_packages": ["build-tools;31.0.0", "ndk;25.1.8937393"]
- },
{
"versions": ["6.4"],
- "sdk_essential_packages": ["build-tools;31.0.0", "ndk;23.1.7779620"]
+ "sdk_essential_packages": ["build-tools;31.0.0", "ndk;23.1.7779620", "platforms;android-31"]
},
{
"versions": ["6.3", "6.2", "5.15.[9-20]"],
- "sdk_essential_packages": ["build-tools;31.0.0", "ndk;22.1.7171670"]
+ "sdk_essential_packages": ["build-tools;31.0.0", "ndk;22.1.7171670", "platforms;android-31"]
},
{
"versions": ["5.15.[0-8]", "5.14.[0-2]", "5.13.2", "6.0", "6.1"],
- "sdk_essential_packages": ["build-tools;31.0.0", "ndk;21.3.6528147"]
+ "sdk_essential_packages": ["build-tools;31.0.0", "ndk;21.3.6528147", "platforms;android-31"]
},
{
"versions": ["5.12.[0-5]", "5.13.[0-1]"],
- "sdk_essential_packages": ["build-tools;28.0.2", "ndk;19.2.5345600"]
+ "sdk_essential_packages": ["build-tools;28.0.2", "ndk;19.2.5345600", "platforms;android-28"]
}
]
}
diff --git a/share/qtcreator/debugger/creatortypes.py b/share/qtcreator/debugger/creatortypes.py
index 9c2933ba06b..5b4f9f08900 100644
--- a/share/qtcreator/debugger/creatortypes.py
+++ b/share/qtcreator/debugger/creatortypes.py
@@ -12,7 +12,7 @@ def typeTarget(type):
def stripTypeName(value):
- return typeTarget(value.type).unqualified().name
+ return typeTarget(value.type).name
def extractPointerType(d, value):
@@ -202,6 +202,46 @@ def qdump__CPlusPlus__Internal__Value(d, value):
d.putPlainChildren(value)
+def is_windows_drive_letter(ch):
+ return (ch >= ord('A') and ch <= ord('Z')) or (ch >= ord('a') and ch <= ord('z'))
+
+def is_relative_filepath_enc(path_enc):
+ # Note: path is hex-encoded UTF-16 here, i.e. 4 byte per original QChar
+ """
+ This needs to stay in sync with the implementation on the C++ side
+ in filepath.cpp.
+
+ bool isWindowsDriveLetter(QChar ch)
+ {
+ return (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z');
+ }
+ bool startsWithWindowsDriveLetterAndSlash(QStringView path)
+ {
+ return path.size() > 2 && path[1] == ':' && path[2] == '/
+ && isWindowsDriveLetter(path[0]);
+ }
+ bool FilePath::isRelativePath() const
+ {
+ const QStringView p = pathView();
+ if (p.startsWith('/'))
+ return false;
+ if (startsWithWindowsDriveLetterAndSlash(p))
+ return false;
+ if (p.startsWith(u":/")) // QRC
+ return false;
+ return true;
+ }
+ """
+ colon = "3A00"
+ slash = "2F00"
+ if path_enc.startswith(slash):
+ return False
+ if path_enc[4:12] == colon + slash and is_windows_drive_letter(int(path_enc[0:2], 16)):
+ return False
+ if path_enc.startswith(colon + slash):
+ return False
+ return True
+
def qdump__Utils__FilePath(d, value):
data, path_len, scheme_len, host_len = d.split("{@QString}IHH", value)
length, enc = d.encodeStringHelper(data, d.displayStringLimit)
@@ -216,8 +256,10 @@ def qdump__Utils__FilePath(d, value):
dot = "2E00"
colon = "3A00"
val = scheme_enc + colon + slash + slash + host_enc
- if not path_enc.startswith(slash):
+ if is_relative_filepath_enc(path_enc):
val += slash + dot + slash
+ elif is_windows_drive_letter(int(path_enc[0:2], 16)):
+ val += slash
val += path_enc
else:
val = enc
diff --git a/share/qtcreator/debugger/dumper.py b/share/qtcreator/debugger/dumper.py
index a9427b2c608..d4241160db6 100644
--- a/share/qtcreator/debugger/dumper.py
+++ b/share/qtcreator/debugger/dumper.py
@@ -227,6 +227,7 @@ class DumperBase():
self.watchers = args.get('watchers', {})
self.useDynamicType = int(args.get('dyntype', '0'))
self.useFancy = int(args.get('fancy', '0'))
+ self.allowInferiorCalls = int(args.get('allowinferiorcalls', '0'))
self.forceQtNamespace = int(args.get('forcens', '0'))
self.passExceptions = int(args.get('passexceptions', '0'))
self.isTesting = int(args.get('testing', '0'))
@@ -3200,8 +3201,8 @@ typename))
return "Value(name='%s',typeid=%s, type=%s,data=%s,address=%s)" \
% (self.name, self.typeid, self.type.name, data, addr)
- def displayEnum(self, form='%d', bitsize=None):
- return self.dumper.value_display_enum(self, form, bitsize)
+ def displayEnum(self, form='%d'):
+ return self.dumper.value_display_enum(self, form)
def display(self):
if self.ldisplay is not None:
@@ -4115,7 +4116,7 @@ typename))
fdata = fdata[::-1]
return int(fdata, 2)
- def value_display_enum(self, value, form='%d', bitsize=None):
+ def value_display_enum(self, value, form='%d'):
size = value.type.size()
intval = self.value_extract_integer(value, size, False)
dd = self.type_enum_display_cache.get(value.typeid, None)
diff --git a/share/qtcreator/debugger/gdbbridge.py b/share/qtcreator/debugger/gdbbridge.py
index ee25520bced..e1a6ae64d63 100644
--- a/share/qtcreator/debugger/gdbbridge.py
+++ b/share/qtcreator/debugger/gdbbridge.py
@@ -739,6 +739,9 @@ class Dumper(DumperBase):
def nativeParseAndEvaluate(self, exp):
#self.warn('EVALUATE "%s"' % exp)
try:
+ if not self.allowInferiorCalls:
+ return None
+
val = gdb.parse_and_eval(exp)
return val
except RuntimeError as error:
@@ -772,6 +775,9 @@ class Dumper(DumperBase):
#self.warn('PTR: %s -> %s(%s)' % (value, function, addr))
exp = '((%s*)0x%x)->%s(%s)' % (type_name, addr, function, arg)
#self.warn('CALL: %s' % exp)
+ if not self.allowInferiorCalls:
+ return None
+
result = gdb.parse_and_eval(exp)
#self.warn(' -> %s' % result)
res = self.fromNativeValue(result)
@@ -1504,6 +1510,12 @@ class CliDumper(Dumper):
args = {}
args['fancy'] = 1
+ # It enables skipping the execution of gdb.parse_and_eval which prevents the application from being rerun,
+ # which could lead to hitting breakpoints repeatedly in different threads, causing an infinite loop.
+ # Currently, gdb.parse_and_eval is bypassed in several places, resolving the bug QTCREATORBUG-23219.
+ # In the future, a full wrapper for gdb.parse_and_eval might be necessary to avoid this issue entirely.
+ # For now, we leave it as-is to retain as much pretty-printing functionality as possible.
+ args['allowinferiorcalls'] = 1
args['passexceptions'] = 1
args['autoderef'] = 1
args['qobjectnames'] = 1
diff --git a/share/qtcreator/debugger/libcpp_stdtypes.py b/share/qtcreator/debugger/libcpp_stdtypes.py
index 2db83521013..6c3e051261d 100644
--- a/share/qtcreator/debugger/libcpp_stdtypes.py
+++ b/share/qtcreator/debugger/libcpp_stdtypes.py
@@ -1,7 +1,7 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
-from stdtypes import qdump__std__array, qdump__std__complex, qdump__std__once_flag, qdump__std__unique_ptr, qdumpHelper__std__deque__libcxx, qdumpHelper__std__vector__libcxx
+from stdtypes import qdump__std__array, qdump__std__complex, qdump__std__once_flag, qdump__std__unique_ptr, qdumpHelper__std__deque__libcxx, qdumpHelper__std__vector__libcxx, qdump__std__forward_list
from utils import DisplayFormat
from dumper import Children, DumperBase
@@ -23,6 +23,10 @@ def qdump__std____1__deque(d, value):
qdumpHelper__std__deque__libcxx(d, value)
+def qdump__std____1__forward_list(d, value):
+ qdump__std__forward_list(d, value)
+
+
def qdump__std____1__list(d, value):
if value.type.size() == 3 * d.ptrSize():
# C++11 only.
@@ -308,7 +312,7 @@ def qform__std____1__unordered_map():
def qdump__std____1__unordered_map(d, value):
- (size, _) = value["__table_"]["__p2_"].split("pp")
+ size = value["__table_"]["__p2_"]["__value_"].integer()
d.putItemCount(size)
keyType = value.type[0]
@@ -316,7 +320,7 @@ def qdump__std____1__unordered_map(d, value):
pairType = value.type[4][0]
if d.isExpanded():
- curr = value["__table_"]["__p1_"].split("pp")[0]
+ curr = value["__table_"]["__p1_"].split("p")[0]
def traverse_list(node):
while node:
@@ -329,14 +333,18 @@ def qdump__std____1__unordered_map(d, value):
d.putPairItem(i, value, 'key', 'value')
+def qdump__std____1__unordered_multimap(d, value):
+ qdump__std____1__unordered_map(d, value)
+
+
def qdump__std____1__unordered_set(d, value):
- (size, _) = value["__table_"]["__p2_"].split("pp")
+ size = value["__table_"]["__p2_"]["__value_"].integer()
d.putItemCount(size)
valueType = value.type[0]
if d.isExpanded():
- curr = value["__table_"]["__p1_"].split("pp")[0]
+ curr = value["__table_"]["__p1_"].split("p")[0]
def traverse_list(node):
while node:
diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py
index 3f7ec792a61..4863a0b3f58 100644
--- a/share/qtcreator/debugger/lldbbridge.py
+++ b/share/qtcreator/debugger/lldbbridge.py
@@ -988,7 +988,7 @@ class Dumper(DumperBase):
connect_options = lldb.SBPlatformConnectOptions(self.remoteChannel_)
res = self.target.GetPlatform().ConnectRemote(connect_options)
- DumperBase.warn("CONNECT: %s %s platform: %s %s" % (res,
+ DumperBase.warn("CONNECT: %s %s platform: %s connected: %s" % (res,
self.remoteChannel_,
self.target.GetPlatform().GetName(),
self.target.GetPlatform().IsConnected()))
@@ -2530,7 +2530,7 @@ def ensure_gdbmiparser():
def __lldb_init_module(debugger, internal_dict):
# Module is being imported in an LLDB session
if 'QT_CREATOR_LLDB_PROCESS' in os.environ:
- # Let Qt Creator take care of its own dumper
+ debug("Returning early, letting Qt Creator take care of its own dumper", debugger)
return
debug("Initializing module with", debugger)
@@ -2571,3 +2571,4 @@ def __lldb_init_module(debugger, internal_dict):
% ("qt.SyntheticChildrenProvider", type_category))
debugger.HandleCommand('type category enable %s' % type_category)
+ debugger.HandleCommand("settings set target.process.prefer-dynamic-value no-dynamic-values")
diff --git a/share/qtcreator/debugger/qttypes.py b/share/qtcreator/debugger/qttypes.py
index 9f2f1354ce2..a0ab08f7eb7 100644
--- a/share/qtcreator/debugger/qttypes.py
+++ b/share/qtcreator/debugger/qttypes.py
@@ -581,10 +581,29 @@ def qdump__QEvent(d, value):
with Children(d):
# Add a sub-item with the event type.
with SubItem(d, '[type]'):
- (vtable, privateD, t, flags) = value.split("pp{short}{short}")
+ if d.qtVersionAtLeast(0x060000):
+ (
+ # QEvent fields (must be kept in sync with the definition in qcoreevent.h)
+ vtable, # virtual table pointer
+ t, # quint16 t
+ posted, # bool m_posted
+ spont, # bool m_spont
+ accept, # bool m_accept
+ unused, # bool m_unused
+ flags, # quint16 m_reserved:13, quint16 m_inputEvent:1
+ # + quint16 m_pointerEvent:1 + quint16 m_singlePointEvent:1
+ ) = value.split("p{short}ccccH")
+ else:
+ (
+ # QEvent fields (must be kept in sync with the definition in qcoreevent.h)
+ vtable, # virtual table pointer
+ privateD, # QEventPrivate *d
+ t, # ushort t
+ flags, # ushort posted:1 + ushort spont:1 + ushort m_accept:1 + ushort reserved:13
+ ) = value.split("pp{short}{short}")
event_type_name = d.qtNamespace() + "QEvent::Type"
type_value = t.cast(event_type_name)
- d.putValue(type_value.displayEnum('0x%04x', bitsize=16))
+ d.putValue(type_value.displayEnum('0x%04x'))
d.putType(event_type_name)
# Show the rest of the class fields as usual.
@@ -592,29 +611,49 @@ def qdump__QEvent(d, value):
def qdump__QKeyEvent(d, value):
- # QEvent fields
- # virtual table pointer
- # QEventPrivate *d;
- # ushort t;
- # ushort posted : 1;
- # ushort spont : 1;
- # ushort m_accept : 1;
- # ushort reserved : 13;
- # QInputEvent fields
- # Qt::KeyboardModifiers modState;
- # ulong ts;
- # QKeyEvent fields
- # QString txt;
- # int k;
- # quint32 nScanCode;
- # quint32 nVirtualKey;
- # quint32 nModifiers; <- nativeModifiers
- # ushort c;
- # ushort autor:1;
- # ushort reserved:15;
- (vtable, privateD, t, flags, modState, ts, txt, k, scanCode,
- virtualKey, modifiers,
- c, autor) = value.split("ppHHiQ{@QString}{int}IIIHH")
+ if d.qtVersionAtLeast(0x060000):
+ (
+ # QEvent fields (must be kept in sync with the definition in qcoreevent.h)
+ vtable, # virtual table pointer
+ t, # quint16 t
+ posted, # bool m_posted
+ spont, # bool m_spont
+ accept, # bool m_accept
+ unused, # bool m_unused
+ qevent_flags, # quint16 m_reserved:13, quint16 m_inputEvent:1
+ # + quint16 m_pointerEvent:1 + quint16 m_singlePointEvent:1
+ # QInputEvent fields (must be kept in sync with the definition in qevent.h)
+ dev, # const QInputDevice *m_dev
+ ts, # quint64 m_timeStamp
+ modState, # Qt::KeyboardModifiers modState
+ reserved, # quint32 m_reserved
+ # QKeyEvent fields (must be kept in sync with the definition in qevent.h)
+ txt, # QString m_text
+ k, # int m_key; (actually a Qt::Key in disguise)
+ scanCode, # quint32 m_scanCode
+ virtualKey, # quint32 m_virtualKey
+ modifiers, # quint32 m_nativeModifiers
+ qkeyevent_flags # quint16 m_count:15 + quint16 m_autoRepeat:1
+ ) = value.split("pHccccHpQiI{@QString}{int}IIIH")
+ else:
+ (
+ # QEvent fields (must be kept in sync with the definition in qcoreevent.h)
+ vtable, # virtual table pointer
+ privateD, # QEventPrivate *d
+ t, # ushort t
+ flags, # ushort posted:1 + ushort spont:1 + ushort m_accept:1 + ushort reserved:13
+ # QInputEvent fields (must be kept in sync with the definition in qevent.h)
+ modState, # Qt::KeyboardModifiers modState
+ ts, # ulong ts
+ # QKeyEvent fields (must be kept in sync with the definition in qevent.h)
+ txt, # QString txt
+ k, # int k
+ scanCode, # quint32 nScanCode
+ virtualKey, # quint32 nVirtualKey
+ modifiers, # quint32 nModifiers
+ c, # ushort c
+ autor # ushort author:1
+ ) = value.split("ppHHiQ{@QString}{int}IIIHH")
#d.putStringValue(txt)
#data = d.encodeString(txt)
@@ -622,7 +661,7 @@ def qdump__QKeyEvent(d, value):
k_type_name = d.qtNamespace() + "Qt::Key"
k_cast_to_enum_value = k.cast(k_type_name)
- k_name = k_cast_to_enum_value.displayEnum(bitsize=32)
+ k_name = k_cast_to_enum_value.displayEnum()
matches = re.search(r'Key_(\w+)', k_name)
if matches:
k_name = matches.group(1)
@@ -677,7 +716,7 @@ def qdump__QKeyEvent(d, value):
# Add a sub-item with the enum name and value.
with SubItem(d, '[{}]'.format(k_type_name)):
k_cast_to_enum_value = k.cast(k_type_name)
- d.putValue(k_cast_to_enum_value.displayEnum('0x%04x', bitsize=32))
+ d.putValue(k_cast_to_enum_value.displayEnum('0x%04x'))
d.putType(k_type_name)
# Show the rest of the class fields as usual.
@@ -874,10 +913,11 @@ def qdump__QFiniteStack(d, value):
def qdump__QFlags(d, value):
- i = value.split('{int}')[0]
enumType = value.type[0]
- v = i.cast(enumType.name)
- d.putValue(v.displayEnum('0x%04x', bitsize=32))
+ v = value.cast(enumType.name)
+ size = enumType.size()
+ # One byte is 2 hex digits
+ d.putValue(v.displayEnum(f'0x%0{2 * size}x'))
def qform__QHash():
@@ -1349,7 +1389,10 @@ def qdumpHelper_Qt6_QMap(d, value, keyType, valueType):
if d_ptr == 0:
d.putItemCount(0)
return
- m = value['d']['d']['m']
+ if d.qtVersionAtLeast(0x060900):
+ m = value['d']['d']['ptr']['m']
+ else:
+ m = value['d']['d']['m']
d.putItem(m)
d.putBetterType('@QMap<%s, %s>' % (keyType.name, valueType.name))
@@ -1380,7 +1423,10 @@ def qdumpHelper_Qt6_QMultiMap(d, value, keyType, valueType):
if d_ptr == 0:
d.putItemCount(0)
return
- m = value['d']['d']['m']
+ if d.qtVersionAtLeast(0x060900):
+ m = value['d']['d']['ptr']['m']
+ else:
+ m = value['d']['d']['m']
d.putItem(m)
d.putBetterType('@QMultiMap<%s, %s>' % (keyType.name, valueType.name))
diff --git a/share/qtcreator/debugger/stdtypes.py b/share/qtcreator/debugger/stdtypes.py
index dbe663ef631..b825195311a 100644
--- a/share/qtcreator/debugger/stdtypes.py
+++ b/share/qtcreator/debugger/stdtypes.py
@@ -60,12 +60,16 @@ def qdump__std__deque(d, value):
def qdumpHelper__std__deque__libstdcxx(d, value):
innerType = value.type[0]
innerSize = innerType.size()
- bufsize = 1
- if innerSize < 512:
- bufsize = 512 // innerSize
+ bufsize = 512 // innerSize if innerSize < 512 else 1
- (mapptr, mapsize, startCur, startFirst, startLast, startNode,
- finishCur, finishFirst, finishLast, finishNode) = value.split("pppppppppp")
+ start = value['_M_start']
+ startCur = start['_M_cur'].pointer()
+ startLast = start['_M_last'].pointer()
+ startNode = start['_M_node'].pointer()
+ finish = value['_M_finish']
+ finishCur = finish['_M_cur'].pointer()
+ finishFirst = finish['_M_first'].pointer()
+ finishNode = finish['_M_node'].pointer()
size = bufsize * ((finishNode - startNode) // d.ptrSize() - 1)
size += (finishCur - finishFirst) // innerSize
@@ -82,12 +86,12 @@ def qdumpHelper__std__deque__libstdcxx(d, value):
d.putSubItem(i, d.createValue(pcur, innerType))
pcur += innerSize
if pcur == plast:
- newnode = pnode + d.ptrSize()
- pfirst = d.extractPointer(newnode)
- plast = pfirst + bufsize * d.ptrSize()
+ pnode += d.ptrSize()
+ if pnode > finishNode:
+ break
+ pfirst = d.extractPointer(pnode)
+ plast = pfirst + bufsize * innerSize
pcur = pfirst
- pnode = newnode
-
def qdumpHelper__std__deque__libcxx(d, value):
mptr, mfirst, mbegin, mend, start, size = value.split("pppptt")
@@ -180,9 +184,16 @@ def qdump__std__list(d, value):
qdump__std__list__QNX(d, value)
return
- if value.type.size() == 3 * d.ptrSize():
+ # QTCREATORBUG-20476: GCC with _GLIBCXX_DEBUG prepends the head node
+ # with some debug information
+ if value.hasMember('_M_impl'):
+ sentinel = value['_M_impl']['_M_node']
+ else:
+ sentinel = value
+
+ if sentinel.type.size() == 3 * d.ptrSize():
# C++11 only.
- (dummy1, dummy2, size) = value.split("ppp")
+ (dummy1, dummy2, size) = sentinel.split("ppp")
d.putItemCount(size)
else:
# Need to count manually.
@@ -195,7 +206,7 @@ def qdump__std__list(d, value):
d.putItemCount(size, 1000)
if d.isExpanded():
- p = d.extractPointer(value)
+ p = d.extractPointer(sentinel)
innerType = value.type[0]
with Children(d, size, maxNumChild=1000, childType=innerType):
for i in d.childRange():
@@ -234,6 +245,43 @@ def qdump__std____cxx11__list(d, value):
qdump__std__list(d, value)
+def qdump__std__forward_list(d, value):
+ # QTCREATORBUG-20476: GCC with _GLIBCXX_DEBUG prepends the head node
+ # with some debug information
+ if value.hasMember('_M_impl'):
+ head = value['_M_impl']['_M_head']
+ # MSVC stores the head in a compressed pair with the allocator
+ # (which is normally an empty class)
+ elif value.hasMember('_Mypair'):
+ head = value['_Mypair']['_Myval2']['_Myhead']
+ else:
+ head = value
+
+ # Need to count manually.
+ p = d.extractPointer(head)
+ size = 0
+ while p and size < 1001:
+ size += 1
+ p = d.extractPointer(p)
+ d.putItemCount(size, 1000)
+
+ if d.isExpanded():
+ p = d.extractPointer(head)
+ innerType = value.type[0]
+ with Children(d, size, maxNumChild=1000, childType=innerType):
+ for i in d.childRange():
+ d.putSubItem(i, d.createValue(p + d.ptrSize(), innerType))
+ p = d.extractPointer(p)
+
+
+def qdump__std____debug__forward_list(d, value):
+ qdump__std__forward_list(d, value)
+
+
+def qdump__std____cxx11__forward_list(d, value):
+ qdump__std__forward_list(d, value)
+
+
def qform__std__map():
return [DisplayFormat.CompactMap]
@@ -244,7 +292,7 @@ def qdump__std__map(d, value):
return
# stuff is actually (color, pad) with 'I@', but we can save cycles/
- (compare, stuff, parent, left, right) = value.split('ppppp')
+ parent = value["_M_t"]["_M_impl"]["_M_header"]
size = value["_M_t"]["_M_impl"]["_M_node_count"].integer()
d.check(0 <= size and size <= 100 * 1000 * 1000)
d.putItemCount(size)
@@ -323,6 +371,14 @@ def qdump__std__multiset(d, value):
qdump__std__set(d, value)
+def qdump__std____debug__multiset(d, value):
+ qdump__std__multiset(d, value)
+
+
+def qdump__std____cxx1998__multiset(d, value):
+ qdump__std__multiset(d, value)
+
+
def qdump__std____cxx1998__map(d, value):
qdump__std__map(d, value)
@@ -335,6 +391,14 @@ def qdump__std__multimap(d, value):
return qdump__std__map(d, value)
+def qdump__std____debug__multimap(d, value):
+ qdump__std__multimap(d, value)
+
+
+def qdump__std____cxx1998__multimap(d, value):
+ qdump__std__multimap(d, value)
+
+
def qdumpHelper__std__tree__iterator(d, value, isSet=False):
treeTypeName = None
if value.type.name.endswith("::iterator"):
diff --git a/share/qtcreator/glsl/glsl_330.vert b/share/qtcreator/glsl/glsl_330.vert
index 0389cd2bc27..71e4eda386d 100644
--- a/share/qtcreator/glsl/glsl_330.vert
+++ b/share/qtcreator/glsl/glsl_330.vert
@@ -14,20 +14,9 @@ struct gl_PerVertex {
float gl_PointSize;
float gl_ClipDistance[];
};
-
-struct gl_PerVertex {
- vec4 gl_Position;
- float gl_PointSize;
- float gl_ClipDistance[];
-} gl_in[];
+uniform gl_PerVertex[] gl_in;
int gl_PrimitiveIDIn;
-struct gl_PerVertex {
- vec4 gl_Position;
- float gl_PointSize;
- float gl_ClipDistance[];
-};
-
int gl_PrimitiveID;
int gl_Layer;
@@ -38,13 +27,7 @@ struct gl_PerVertex {
float gl_ClipDistance[];
vec4 gl_ClipVertex;
};
-
-struct gl_PerVertex {
- vec4 gl_Position;
- float gl_PointSize;
- float gl_ClipDistance[];
- vec4 gl_ClipVertex;
-} gl_in[];
+uniform gl_PerVertex[] gl_in;
vec4 gl_Color;
vec4 gl_SecondaryColor;
@@ -59,3 +42,6 @@ vec4 gl_MultiTexCoord5;
vec4 gl_MultiTexCoord6;
vec4 gl_MultiTexCoord7;
float gl_FogCoord;
+
+void EmitVertex();
+void EndPrimitive();
diff --git a/share/qtcreator/jsonschemas/project.json b/share/qtcreator/jsonschemas/project.json
index df55dbd693a..5515c02a1a3 100644
--- a/share/qtcreator/jsonschemas/project.json
+++ b/share/qtcreator/jsonschemas/project.json
@@ -52,6 +52,60 @@
]
}
]
+ },
+ "build.configuration": {
+ "type": "array",
+ "description": "A list of build configurations",
+ "items": [
+ {
+ "type": "object",
+ "properties": {
+ "steps": {
+ "type": "array",
+ "items": [
+ {
+ "type": "object",
+ "properties": {
+ "arguments": {
+ "type": "array",
+ "items": [
+ {
+ "type": "string"
+ }
+ ],
+ "description": "Arguments to pass to the executable"
+ },
+ "executable": {
+ "type": "string",
+ "description": "The executable to run"
+ },
+ "workingDirectory": {
+ "type": "string",
+ "description": "The working directory to run the executable in"
+ }
+ },
+ "required": [
+ "executable"
+ ]
+ }
+ ],
+ "description": "The steps required for the build"
+ },
+ "name": {
+ "type": "string",
+ "description": "The name of the build configuration"
+ },
+ "buildDirectory": {
+ "type": "string",
+ "description": "The directory to build the project in"
+ }
+ },
+ "required": [
+ "steps",
+ "name"
+ ]
+ }
+ ]
}
}
}
diff --git a/share/qtcreator/lua-lupdate/README.md b/share/qtcreator/lua-lupdate/README.md
new file mode 100644
index 00000000000..2ea70bd3d06
--- /dev/null
+++ b/share/qtcreator/lua-lupdate/README.md
@@ -0,0 +1,65 @@
+# lupdate.lua
+
+lupdate.lua allows you to update your .ts files from your .lua files.
+
+## Installation
+
+You need to install lua, luarocks and luafilesystem.
+
+On macOS:
+
+```sh
+$ brew install lua luarocks
+$ luarocks install luafilesystem
+```
+
+For other platforms see: [Download luarocks](https://github.com/luarocks/luarocks/wiki/Download)
+
+## Usage
+
+You need to add a "languages" key to your plugin spec file.
+
+```lua
+--- In your plugin.lua file
+return {
+ Name = "MyPlugin",
+ Version = "1.0.0",
+ languages = {"de", "fr", "en"},
+ --- ....
+} --[[@as QtcPlugin]]
+```
+
+Then run the lupdate.lua script in your plugin directory. Make sure that lupdate is in your PATH.
+
+```sh
+$ # export PATH=$PATH:/path/to/Qt/bin
+$ cd my-plugin
+$ lua lupdate.lua
+```
+
+Once you have the .ts files you can use Qt Linguist to translate your strings.
+
+After translation you can run lrelease to generate the .qm files.
+
+```sh
+$ cd ts
+$ lrelease *.ts
+```
+
+## Background
+
+Since Qt's lupdate does not currently support lua files, the lupdate.lua script uses a trick
+to make it work. It creates a temporary file for each lua file and adds a comment at the start
+and end of the file:
+
+```lua
+--- class Plugin { Q_OBJECT
+
+print(tr("Hello World"))
+
+--- }
+```
+
+That way lupdate thinks its inside a C++ Plugin and takes as context the name of the class, in this case "Plugin".
+
+It then starts the actual lupdate tool to update the .ts files.
diff --git a/share/qtcreator/lua-lupdate/lupdate.lua b/share/qtcreator/lua-lupdate/lupdate.lua
new file mode 100644
index 00000000000..5c1d3d5b705
--- /dev/null
+++ b/share/qtcreator/lua-lupdate/lupdate.lua
@@ -0,0 +1,99 @@
+--- luarocks install luafilesystem
+local lfs = require "lfs"
+
+function string:endswith(suffix)
+ return self:sub(- #suffix) == suffix
+end
+
+function findLUpdate()
+ if os.execute("lupdate -version 2>/dev/null") then
+ return "lupdate"
+ end
+ QtDir = os.getenv("QTDIR")
+ if QtDir then
+ local path = QtDir .. "/bin/lupdate"
+ if os.execute(path .. " -version 2>/dev/null") then
+ return path
+ end
+ end
+ return "lupdate"
+end
+
+LUpdatePath = findLUpdate()
+TmpFiles = {}
+
+
+local curdir, err = lfs.currentdir()
+if not curdir then
+ print("Error: " .. err)
+ return
+end
+
+local folderName = curdir:match("([^/]+)$")
+print("Working on: " .. curdir)
+local pluginSpecName = folderName .. ".lua"
+
+--- Noop tr function
+function tr(str) return str end
+
+local specScript, err = loadfile(curdir .. "/" .. pluginSpecName)
+if not specScript then
+ print("Error: " .. err)
+ return
+end
+
+local spec, err = specScript()
+
+if not spec then
+ print("Error: " .. err)
+ return
+end
+
+if not spec.languages then
+ print("Error: No languages specified in plugin spec.")
+ return
+end
+
+TrContext = spec.Name:gsub("[^a-zA-Z]", "_")
+
+for file in lfs.dir(".") do
+ if file ~= "." and file ~= ".." and file:endswith(".lua") and file ~= "lupdate.lua" then
+ local f = io.open(file, "r")
+ if f then
+ local contents = f:read("a")
+ local tmpname = os.tmpname()
+ local tf = io.open(tmpname, "w")
+ if tf then
+ tf:write("--- class " .. TrContext .. " { Q_OBJECT \n")
+ tf:write(contents)
+ tf:write("--- }\n")
+ tf:close()
+ table.insert(TmpFiles, tmpname)
+ end
+ end
+ end
+end
+
+AllFiles = table.concat(TmpFiles, "\n")
+LstFileName = os.tmpname()
+local lstFile = io.open(LstFileName, "w")
+
+if lstFile then
+ lstFile:write(AllFiles)
+ lstFile:close()
+
+ local allLangs = ""
+ for _, lang in ipairs(spec.languages) do
+ local name = "ts/" .. string.lower(folderName) .. "_" .. lang .. ".ts"
+ allLangs = allLangs .. name .. " "
+ end
+
+ lfs.mkdir("ts")
+ os.execute(LUpdatePath .. " @" .. LstFileName .. " -ts " .. allLangs)
+
+ --- Cleanup
+ os.remove(LstFileName)
+ for _, file in ipairs(TmpFiles) do
+ os.remove(file)
+ end
+end
diff --git a/share/qtcreator/lua-plugins/luals/init.lua b/share/qtcreator/lua-plugins/luals/init.lua
index e7bc13629cc..1999ad83263 100644
--- a/share/qtcreator/lua-plugins/luals/init.lua
+++ b/share/qtcreator/lua-plugins/luals/init.lua
@@ -79,8 +79,10 @@ local function installOrUpdateServer()
binary = "bin/lua-language-server.exe"
end
- Settings.binary:setValue(lspPkgInfo.path:resolvePath(binary))
- Settings:apply()
+ if lspPkgInfo.path:resolvePath(binary) ~= Settings.binary.expandedValue then
+ Settings.binary:setValue(lspPkgInfo.path:resolvePath(binary))
+ Settings:apply()
+ end
return
end
@@ -102,7 +104,7 @@ local function setupClient()
mimeTypes = { 'text/x-lua' }
},
settings = Settings,
- startBehavior = "RequiresFile",
+ startBehavior = "RequiresProject",
onStartFailed = function()
a.sync(function()
if IsTryingToInstall == true then
diff --git a/share/qtcreator/lua-plugins/luals/luals.lua b/share/qtcreator/lua-plugins/luals/luals.lua
index 5a68388dd06..f14c88f4fe0 100644
--- a/share/qtcreator/lua-plugins/luals/luals.lua
+++ b/share/qtcreator/lua-plugins/luals/luals.lua
@@ -1,9 +1,11 @@
-- Copyright (C) 2024 The Qt Company Ltd.
-- SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
return {
- Name = "LuaLanguageServer",
+ Id = "lualanguageserver",
+ Name = "Lua Language Server",
Version = "1.0.0",
CompatVersion = "1.0.0",
+ VendorId = "theqtcompany",
Vendor = "The Qt Company",
Category = "Language Client",
Description = "The Lua Language Server",
@@ -14,8 +16,8 @@ This plugin provides the Lua Language Server.
It will try to install it if it is not found.
]],
Dependencies = {
- { Name = "Lua", Version = "14.0.0" },
- { Name = "LuaLanguageClient", Version = "14.0.0" }
+ { Id = "lua", Version = "15.0.0" },
+ { Id = "lualanguageclient", Version = "15.0.0" }
},
setup = function()
require 'init'.setup()
diff --git a/share/qtcreator/lua-plugins/luatests/luatests.lua b/share/qtcreator/lua-plugins/luatests/luatests.lua
index e85f0d95278..ba2ec28f42e 100644
--- a/share/qtcreator/lua-plugins/luatests/luatests.lua
+++ b/share/qtcreator/lua-plugins/luatests/luatests.lua
@@ -1,9 +1,11 @@
-- Copyright (C) 2024 The Qt Company Ltd.
-- SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
return {
- Name = "LuaTests",
+ Id = "luatests",
+ Name = "Lua Tests",
Version = "1.0.0",
CompatVersion = "1.0.0",
+ VendorId = "theqtcompany",
Vendor = "The Qt Company",
Category = "Tests",
DisabledByDefault = true,
@@ -13,7 +15,7 @@ return {
It has tests for (almost) all functionality exposed by the API.
]],
Dependencies = {
- { Name = "Lua", Version = "14.0.0" }
+ { Id = "lua", Version = "15.0.0" }
},
setup = function() require 'tests'.setup() end,
printToOutputPane = true,
diff --git a/share/qtcreator/lua-plugins/luatests/tests.lua b/share/qtcreator/lua-plugins/luatests/tests.lua
index 213aff47ebf..5ab9f8ccca0 100644
--- a/share/qtcreator/lua-plugins/luatests/tests.lua
+++ b/share/qtcreator/lua-plugins/luatests/tests.lua
@@ -77,6 +77,7 @@ local function setup()
script()()
end,
})
+ require 'tst_texteditor'.setup()
end
return { setup = setup }
diff --git a/share/qtcreator/lua-plugins/luatests/tst_texteditor.lua b/share/qtcreator/lua-plugins/luatests/tst_texteditor.lua
new file mode 100644
index 00000000000..a21c08659d2
--- /dev/null
+++ b/share/qtcreator/lua-plugins/luatests/tst_texteditor.lua
@@ -0,0 +1,64 @@
+local function tst_embedWidget()
+ T = require 'TextEditor'
+ G = require 'Gui'
+
+ local editor = T.currentEditor()
+ if not editor then
+ print("No editor found")
+ return
+ end
+
+ local cursor = editor:cursor()
+
+ local embed
+ local optionals = G.Group {
+ visible = false,
+ G.Row {
+ G.Label {
+ text = "Optional 1",
+ },
+ G.Label {
+ text = "Optional 2",
+ },
+ }
+ }
+
+ local layout = G.Group {
+ G.Column {
+ "Hello", G.br,
+ "World",
+ G.br,
+ G.PushButton {
+ text = "Show optionals",
+ onClicked = function()
+ optionals.visible = not optionals.visible
+ embed:resize()
+ end,
+ },
+ optionals,
+ G.PushButton {
+ text = "Close",
+ onClicked = function()
+ embed:close()
+ end,
+ },
+ }
+ }
+
+ embed = editor:addEmbeddedWidget(layout, cursor:mainCursor():position())
+ embed:onShouldClose(function()
+ embed:close()
+ end)
+end
+
+local function setup()
+ Action = require 'Action'
+ Action.create("LuaTests.textEditorEmbedDemo", {
+ text = "Lua TextEditor Embed Demo",
+ onTrigger = tst_embedWidget,
+ })
+end
+
+return {
+ setup = setup,
+}
diff --git a/share/qtcreator/lua-plugins/rustls/rustls.lua b/share/qtcreator/lua-plugins/rustls/rustls.lua
index 7e0056de25f..b3a1d6de598 100644
--- a/share/qtcreator/lua-plugins/rustls/rustls.lua
+++ b/share/qtcreator/lua-plugins/rustls/rustls.lua
@@ -1,9 +1,11 @@
-- Copyright (C) 2024 The Qt Company Ltd.
-- SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
return {
- Name = "RustLanguageServer",
+ Id = "rustlanguageserver",
+ Name = "Rust Language Server",
Version = "1.0.0",
CompatVersion = "1.0.0",
+ VendorId = "theqtcompany",
Vendor = "The Qt Company",
Category = "Language Client",
Description = "The Rust Language Server",
@@ -14,8 +16,8 @@ This plugin provides the Rust Language Server.
It will try to install it if it is not found.
]],
Dependencies = {
- { Name = "Lua", Version = "14.0.0" },
- { Name = "LuaLanguageClient", Version = "14.0.0" }
+ { Id = "lua", Version = "15.0.0" },
+ { Id = "lualanguageclient", Version = "15.0.0" }
},
setup = function()
require 'init'.setup()
diff --git a/share/qtcreator/lua-plugins/tellajoke/tellajoke.lua b/share/qtcreator/lua-plugins/tellajoke/tellajoke.lua
index 58d07e0b178..b409d04b037 100644
--- a/share/qtcreator/lua-plugins/tellajoke/tellajoke.lua
+++ b/share/qtcreator/lua-plugins/tellajoke/tellajoke.lua
@@ -12,12 +12,10 @@ local function fetchJoke()
local r = a.wait(fetch({ url = "https://official-joke-api.appspot.com/random_joke", convertToTable = true }))
if (type(r) == "table") then
mm.writeDisrupting(r.setup)
- a.wait(utils.waitms(1000))
- mm.writeSilently(".")
- a.wait(utils.waitms(1000))
- mm.writeSilently(".")
- a.wait(utils.waitms(1000))
- mm.writeSilently(".")
+ for i = 1, 3 do
+ a.wait(utils.waitms(1000))
+ mm.writeSilently(".")
+ end
a.wait(utils.waitms(1000))
mm.writeDisrupting(r.punchline)
else
@@ -43,14 +41,16 @@ local function setup()
end
return {
+ Id = "tellajoke",
Name = "Tell A Joke",
Version = "1.0.0",
CompatVersion = "1.0.0",
+ VendorId = "theqtcompany",
Vendor = "The Qt Company",
Category = "Fun",
Description = "This plugin adds an action that tells a joke.",
Dependencies = {
- { Name = "Lua", Version = "14.0.0" },
+ { Id = "lua", Version = "15.0.0" },
},
setup = setup,
} --[[@as QtcPlugin]]
diff --git a/share/qtcreator/qml-type-descriptions/qbs.qmltypes b/share/qtcreator/qml-type-descriptions/qbs.qmltypes
index 00c0cbb9261..49d40b3f47a 100644
--- a/share/qtcreator/qml-type-descriptions/qbs.qmltypes
+++ b/share/qtcreator/qml-type-descriptions/qbs.qmltypes
@@ -92,6 +92,7 @@ Module {
name: "ModuleProvider"
exports: [ "qbs/ModuleProvider 1.0" ]
prototype: "QQuickItem"
+ Property { name: "condition"; type: "bool" }
Property { name: "isEager"; type: "bool" }
Property { name: "moduleName"; type: "string" }
Property { name: "name"; type: "string" }
diff --git a/share/qtcreator/qmldesigner/contentLibraryQmlSource/DeleteBundleItemDialog.qml b/share/qtcreator/qmldesigner/contentLibraryQmlSource/DeleteBundleItemDialog.qml
index d8f6551ae59..252ab4becec 100644
--- a/share/qtcreator/qmldesigner/contentLibraryQmlSource/DeleteBundleItemDialog.qml
+++ b/share/qtcreator/qmldesigner/contentLibraryQmlSource/DeleteBundleItemDialog.qml
@@ -31,7 +31,7 @@ StudioControls.Dialog {
Text {
id: warningText
- text: qsTr("Are you sure you? The action cannot be undone")
+ text: qsTr("Are you sure? The action cannot be undone.")
color: StudioTheme.Values.themeTextColor
wrapMode: Text.WordWrap
anchors.right: parent.right
diff --git a/share/qtcreator/styles/creator-dark.xml b/share/qtcreator/styles/creator-dark.xml
index 85add5cfac2..088feb7a2ed 100644
--- a/share/qtcreator/styles/creator-dark.xml
+++ b/share/qtcreator/styles/creator-dark.xml
@@ -29,6 +29,7 @@
+
diff --git a/share/qtcreator/styles/dark-2024.xml b/share/qtcreator/styles/dark-2024.xml
new file mode 100644
index 00000000000..b576eb4fb81
--- /dev/null
+++ b/share/qtcreator/styles/dark-2024.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/share/qtcreator/styles/dark.xml b/share/qtcreator/styles/dark.xml
index 3a2e2c59dda..db26e1467ef 100644
--- a/share/qtcreator/styles/dark.xml
+++ b/share/qtcreator/styles/dark.xml
@@ -19,6 +19,7 @@
+
diff --git a/share/qtcreator/styles/default_classic.xml b/share/qtcreator/styles/default_classic.xml
index 08d9fd0e812..3d7f8f04a65 100644
--- a/share/qtcreator/styles/default_classic.xml
+++ b/share/qtcreator/styles/default_classic.xml
@@ -25,6 +25,7 @@
+
diff --git a/share/qtcreator/styles/grayscale.xml b/share/qtcreator/styles/grayscale.xml
index 8d7cbfb6cd2..3d0e41936a5 100644
--- a/share/qtcreator/styles/grayscale.xml
+++ b/share/qtcreator/styles/grayscale.xml
@@ -17,6 +17,7 @@
+
diff --git a/share/qtcreator/styles/inkpot.xml b/share/qtcreator/styles/inkpot.xml
index 1f7332857f0..c934812c5dc 100644
--- a/share/qtcreator/styles/inkpot.xml
+++ b/share/qtcreator/styles/inkpot.xml
@@ -23,6 +23,7 @@
+
diff --git a/share/qtcreator/styles/intellij.xml b/share/qtcreator/styles/intellij.xml
index aedb2df64f9..d229781cf83 100644
--- a/share/qtcreator/styles/intellij.xml
+++ b/share/qtcreator/styles/intellij.xml
@@ -11,6 +11,7 @@
+
diff --git a/share/qtcreator/styles/light-2024.xml b/share/qtcreator/styles/light-2024.xml
new file mode 100644
index 00000000000..962663c49ea
--- /dev/null
+++ b/share/qtcreator/styles/light-2024.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/share/qtcreator/styles/modnokai_night_shift_v2.xml b/share/qtcreator/styles/modnokai_night_shift_v2.xml
index c274ebe52d4..923cc887728 100644
--- a/share/qtcreator/styles/modnokai_night_shift_v2.xml
+++ b/share/qtcreator/styles/modnokai_night_shift_v2.xml
@@ -35,6 +35,7 @@
+
diff --git a/share/qtcreator/styles/solarized-dark.xml b/share/qtcreator/styles/solarized-dark.xml
index 07d97ad858d..ade9f227d07 100644
--- a/share/qtcreator/styles/solarized-dark.xml
+++ b/share/qtcreator/styles/solarized-dark.xml
@@ -35,6 +35,7 @@
+
diff --git a/share/qtcreator/styles/solarized-light.xml b/share/qtcreator/styles/solarized-light.xml
index ede48e7d0bc..348d89f4453 100644
--- a/share/qtcreator/styles/solarized-light.xml
+++ b/share/qtcreator/styles/solarized-light.xml
@@ -35,6 +35,7 @@
+
diff --git a/share/qtcreator/templates/wizards/autotest/boosttest/wizard.json b/share/qtcreator/templates/wizards/autotest/boosttest/wizard.json
index 01b79081268..525752701e5 100644
--- a/share/qtcreator/templates/wizards/autotest/boosttest/wizard.json
+++ b/share/qtcreator/templates/wizards/autotest/boosttest/wizard.json
@@ -26,9 +26,6 @@
"key": "CMakeFileName",
"value": "%{ProjectDirectory}/CMakeLists.txt"
},
- { "key": "IsTopLevelProject",
- "value": "%{JS: !'%{Exists:ProjectExplorer.Profile.Ids}' }"
- },
{ "key": "MainCppName",
"value": "%{JS: 'main.' + Util.preferredSuffix('text/x-c++src') }"
},
@@ -118,6 +115,7 @@
"trDisplayName": "Build system:",
"type": "ComboBox",
"persistenceKey": "BuildSystemType",
+ "visible": "%{JS: !value('IsSubproject')}",
"data":
{
"index": 1,
@@ -147,7 +145,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{IsTopLevelProject}",
"data": {
"projectFilePath": "%{ProjectFilePath}",
"requiredFeatures": [ "%{JS: value('BuildSystem') === 'qmake' ? 'QtSupport.Wizards.FeatureQt' : 'DeviceType.Desktop' }" ]
@@ -199,7 +196,7 @@
{
"source": "../../projects/git.ignore",
"target": ".gitignore",
- "condition": "%{JS: ( %{IsTopLevelProject} && value('VersionControl') === 'G.Git' )}"
+ "condition": "%{JS: ( !value('IsSubproject') && value('VersionControl') === 'G.Git' )}"
}
]
}
diff --git a/share/qtcreator/templates/wizards/autotest/catch/wizard.json b/share/qtcreator/templates/wizards/autotest/catch/wizard.json
index 1aa35ed0ec3..03ee5ff68ff 100644
--- a/share/qtcreator/templates/wizards/autotest/catch/wizard.json
+++ b/share/qtcreator/templates/wizards/autotest/catch/wizard.json
@@ -26,9 +26,6 @@
"key": "CMakeFileName",
"value": "%{ProjectDirectory}/CMakeLists.txt"
},
- { "key": "IsTopLevelProject",
- "value": "%{JS: !'%{Exists:ProjectExplorer.Profile.Ids}' }"
- },
{ "key": "MainCppName",
"value": "%{JS: 'main.' + Util.preferredSuffix('text/x-c++src') }"
},
@@ -128,6 +125,7 @@
"trDisplayName": "Build system:",
"type": "ComboBox",
"persistenceKey": "BuildSystemType",
+ "visible": "%{JS: !value('IsSubproject')}",
"data":
{
"index": 1,
@@ -157,7 +155,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{IsTopLevelProject}",
"data": {
"projectFilePath": "%{ProjectFilePath}",
"requiredFeatures": [ "%{JS: (value('Catch2NeedsQt') == 'true' || value('BuildSystem') === 'qmake') ? 'QtSupport.Wizards.FeatureQt' : 'DeviceType.Desktop' }" ]
@@ -222,7 +219,7 @@
{
"source": "../../projects/git.ignore",
"target": ".gitignore",
- "condition": "%{JS: ( %{IsTopLevelProject} && value('VersionControl') === 'G.Git' )}"
+ "condition": "%{JS: ( !value('IsSubproject') && value('VersionControl') === 'G.Git' )}"
}
]
}
diff --git a/share/qtcreator/templates/wizards/autotest/gtest/wizard.json b/share/qtcreator/templates/wizards/autotest/gtest/wizard.json
index 7d8b88b552e..643dd95f0ab 100644
--- a/share/qtcreator/templates/wizards/autotest/gtest/wizard.json
+++ b/share/qtcreator/templates/wizards/autotest/gtest/wizard.json
@@ -26,9 +26,6 @@
"key": "CMakeFileName",
"value": "%{ProjectDirectory}/CMakeLists.txt"
},
- { "key": "IsTopLevelProject",
- "value": "%{JS: !'%{Exists:ProjectExplorer.Profile.Ids}' }"
- },
{ "key": "MainCppName",
"value": "%{JS: 'main.' + Util.preferredSuffix('text/x-c++src') }"
},
@@ -122,6 +119,7 @@
"trDisplayName": "Build system:",
"type": "ComboBox",
"persistenceKey": "BuildSystemType",
+ "visible": "%{JS: !value('IsSubproject')}",
"data":
{
"index": 1,
@@ -151,7 +149,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{IsTopLevelProject}",
"data": {
"projectFilePath": "%{ProjectFilePath}",
"requiredFeatures": [ "%{JS: value('BuildSystem') === 'qmake' ? 'QtSupport.Wizards.FeatureQt' : 'DeviceType.Desktop' }" ]
@@ -215,7 +212,7 @@
{
"source": "../../projects/git.ignore",
"target": ".gitignore",
- "condition": "%{JS: ( %{IsTopLevelProject} && value('VersionControl') === 'G.Git' )}"
+ "condition": "%{JS: ( !value('IsSubproject') && value('VersionControl') === 'G.Git' )}"
}
]
}
diff --git a/share/qtcreator/templates/wizards/autotest/qttest/wizard.json b/share/qtcreator/templates/wizards/autotest/qttest/wizard.json
index 0236a24a5ab..e9b0a782c47 100644
--- a/share/qtcreator/templates/wizards/autotest/qttest/wizard.json
+++ b/share/qtcreator/templates/wizards/autotest/qttest/wizard.json
@@ -29,9 +29,6 @@
"key": "CMakeFileName",
"value": "%{ProjectDirectory}/CMakeLists.txt"
},
- { "key": "IsTopLevelProject",
- "value": "%{JS: !'%{Exists:ProjectExplorer.Profile.Ids}' }"
- },
{
"key": "GUARD",
"value": "%{JS: value('TestCaseFileWithHeaderSuffix').toUpperCase().replace('.', '_') }"
@@ -95,6 +92,7 @@
"trDisplayName": "Build system:",
"type": "ComboBox",
"persistenceKey": "BuildSystemType",
+ "visible": "%{JS: !value('IsSubproject')}",
"data":
{
"index": 1,
@@ -124,7 +122,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{IsTopLevelProject}",
"data": {
"projectFilePath": "%{ProjectFilePath}",
"requiredFeatures": [ "QtSupport.Wizards.FeatureQt", "DeviceType.Desktop" ]
@@ -171,7 +168,7 @@
{
"source": "../../projects/git.ignore",
"target": ".gitignore",
- "condition": "%{JS: ( %{IsTopLevelProject} && value('VersionControl') === 'G.Git' )}"
+ "condition": "%{JS: ( !value('IsSubproject') && value('VersionControl') === 'G.Git' )}"
}
]
}
diff --git a/share/qtcreator/templates/wizards/autotest/quicktest/wizard.json b/share/qtcreator/templates/wizards/autotest/quicktest/wizard.json
index bbcf7c41479..a5411c61b1b 100644
--- a/share/qtcreator/templates/wizards/autotest/quicktest/wizard.json
+++ b/share/qtcreator/templates/wizards/autotest/quicktest/wizard.json
@@ -29,9 +29,6 @@
"key": "CMakeFileName",
"value": "%{ProjectDirectory}/CMakeLists.txt"
},
- { "key": "IsTopLevelProject",
- "value": "%{JS: !'%{Exists:ProjectExplorer.Profile.Ids}' }"
- },
{ "key": "MainCppName",
"value": "%{JS: 'main.' + Util.preferredSuffix('text/x-c++src') }"
},
@@ -90,6 +87,7 @@
"trDisplayName": "Build system:",
"type": "ComboBox",
"persistenceKey": "BuildSystemType",
+ "visible": "%{JS: !value('IsSubproject')}",
"data":
{
"index": 1,
@@ -119,7 +117,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{IsTopLevelProject}",
"data": {
"projectFilePath": "%{ProjectFilePath}",
"requiredFeatures": [ "QtSupport.Wizards.FeatureQtQuick.2", "DeviceType.Desktop" ]
@@ -183,7 +180,7 @@
{
"source": "../../projects/git.ignore",
"target": ".gitignore",
- "condition": "%{JS: ( %{IsTopLevelProject} && value('VersionControl') === 'G.Git' )}"
+ "condition": "%{JS: ( !value('IsSubproject') && value('VersionControl') === 'G.Git' )}"
}
]
}
diff --git a/share/qtcreator/templates/wizards/classes/cpp/file.cpp b/share/qtcreator/templates/wizards/classes/cpp/file.cpp
index 760f19c2e7b..57f55f2bbb4 100644
--- a/share/qtcreator/templates/wizards/classes/cpp/file.cpp
+++ b/share/qtcreator/templates/wizards/classes/cpp/file.cpp
@@ -1,5 +1,10 @@
%{JS: Cpp.licenseTemplate()}\
#include "%{JS: Util.relativeFilePath('%{Path}/%{HdrFileName}', '%{Path}' + '/' + Util.path('%{SrcFileName}'))}"
+
+@if '%{IncludeQSharedData}'
+#include
+
+@endif
%{JS: Cpp.openNamespaces('%{Class}')}
@if '%{IncludeQSharedData}'
class %{CN}Data : public QSharedData
@@ -32,10 +37,23 @@ public:
}
+%{CN}::%{CN}(%{CN} &&rhs)
+ : data{std::move(rhs.data)}
+{
+
+}
+
%{CN} &%{CN}::operator=(const %{CN} &rhs)
{
if (this != &rhs)
- data.operator=(rhs.data);
+ data = rhs.data;
+ return *this;
+}
+
+%{CN} &%{CN}::operator=(%{CN} &&rhs)
+{
+ if (this != &rhs)
+ data = std::move(rhs.data);
return *this;
}
diff --git a/share/qtcreator/templates/wizards/classes/cpp/file.h b/share/qtcreator/templates/wizards/classes/cpp/file.h
index 5dac9614e26..beaa86548f4 100644
--- a/share/qtcreator/templates/wizards/classes/cpp/file.h
+++ b/share/qtcreator/templates/wizards/classes/cpp/file.h
@@ -44,7 +44,9 @@ public:
@endif
@if '%{IncludeQSharedData}'
%{CN}(const %{CN} &);
+ %{CN}(%{CN} &&);
%{CN} &operator=(const %{CN} &);
+ %{CN} &operator=(%{CN} &&);
~%{CN}();
@endif
@if %{isQObject}
diff --git a/share/qtcreator/templates/wizards/codesnippet/wizard.json b/share/qtcreator/templates/wizards/codesnippet/wizard.json
index ddcd41295fc..e5ba8bbdc73 100644
--- a/share/qtcreator/templates/wizards/codesnippet/wizard.json
+++ b/share/qtcreator/templates/wizards/codesnippet/wizard.json
@@ -78,7 +78,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{JS: !value('IsSubproject')}",
"data":
{
"projectFilePath": "%{ProjectFile}"
diff --git a/share/qtcreator/templates/wizards/projects/consoleapp/CMakeLists-Qt6.txt b/share/qtcreator/templates/wizards/projects/consoleapp/CMakeLists-Qt6.txt
new file mode 100644
index 00000000000..162310fb356
--- /dev/null
+++ b/share/qtcreator/templates/wizards/projects/consoleapp/CMakeLists-Qt6.txt
@@ -0,0 +1,41 @@
+cmake_minimum_required(VERSION 3.19)
+project(%{ProjectName} LANGUAGES CXX)
+
+@if %{HasTranslation}
+find_package(Qt6 6.5 REQUIRED COMPONENTS Core LinguistTools)
+@else
+find_package(Qt6 6.5 REQUIRED COMPONENTS Core)
+@endif
+
+qt_standard_project_setup()
+
+qt_add_executable(%{ProjectName}
+ %{CppFileName}
+)
+
+@if %{HasTranslation}
+qt_add_translations(
+ TARGETS %{ProjectName}
+ TS_FILES %{TsFileName}
+)
+
+@endif
+target_link_libraries(%{ProjectName}
+ PRIVATE
+ Qt::Core
+)
+
+include(GNUInstallDirs)
+
+install(TARGETS %{ProjectName}
+ BUNDLE DESTINATION .
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+)
+
+qt_generate_deploy_app_script(
+ TARGET %{ProjectName}
+ OUTPUT_SCRIPT deploy_script
+ NO_UNSUPPORTED_PLATFORM_ERROR
+)
+install(SCRIPT ${deploy_script})
diff --git a/share/qtcreator/templates/wizards/projects/consoleapp/wizard.json b/share/qtcreator/templates/wizards/projects/consoleapp/wizard.json
index 1817b79d938..249c256d57b 100644
--- a/share/qtcreator/templates/wizards/projects/consoleapp/wizard.json
+++ b/share/qtcreator/templates/wizards/projects/consoleapp/wizard.json
@@ -9,17 +9,18 @@
"icon": "../../global/consoleapplication.png",
"iconKind": "Themed",
"featuresRequired": [ "QtSupport.Wizards.FeatureQt" ],
- "enabled": "%{JS: value('Plugins').indexOf('QmakeProjectManager') >= 0 || value('Plugins').indexOf('QbsProjectManager') >= 0 || value('Plugins').indexOf('CMakeProjectManager') >= 0 || value('Plugins').indexOf('MesonProjectManager') >= 0}",
+ "enabled": "%{JS: isAnyPluginRunning(['qmakeprojectmanager', 'qbsprojectmanager', 'cmakeprojectmanager', 'mesonprojectmanager'])}",
"options":
[
- { "key": "ProjectFile", "value": "%{JS: value('BuildSystem') === 'qmake' ? value('ProFile') : (value('BuildSystem') === 'cmake' ? value('CMakeFile') : (value('BuildSystem') === 'meson' ? value('MesonFile') : value('QbsFile')))}" },
+ { "key": "ProjectFile", "value": "%{JS: value(\\{qmake: 'ProFile', cmake: 'CMakeFile', meson: 'MesonFile', qbs: 'QbsFile', 'cmake-qt6': 'CMakeFile'\\}[value('BuildSystem')]) }" },
{ "key": "ProFile", "value": "%{JS: Util.fileName(value('ProjectDirectory') + '/' + value('ProjectName'), 'pro')}" },
{ "key": "QbsFile", "value": "%{JS: Util.fileName(value('ProjectDirectory') + '/' + value('ProjectName'), 'qbs')}" },
{ "key": "CMakeFile", "value": "%{ProjectDirectory}/CMakeLists.txt" },
{ "key": "MesonFile", "value": "%{ProjectDirectory}/meson.build" },
{ "key": "HasTranslation", "value": "%{JS: value('TsFileName') !== ''}" },
- { "key": "CppFileName", "value": "%{JS: 'main.' + Util.preferredSuffix('text/x-c++src')}" }
+ { "key": "CppFileName", "value": "%{JS: 'main.' + Util.preferredSuffix('text/x-c++src')}" },
+ { "key": "FeatureQt", "value": "QtSupport.Wizards.FeatureQt%{JS: value('BuildSystem') === 'cmake-qt6' ? '.6.5' : ''}" }
],
"pages":
@@ -34,7 +35,7 @@
"trDisplayName": "Define Build System",
"trShortTitle": "Build System",
"typeId": "Fields",
- "enabled": "%{JS: !value('IsSubproject')}",
+ "skipForSubprojects": true,
"data":
[
{
@@ -50,22 +51,27 @@
{
"trKey": "qmake",
"value": "qmake",
- "condition": "%{JS: value('Plugins').indexOf('QmakeProjectManager') >= 0}"
+ "condition": "%{JS: isPluginRunning('qmakeprojectmanager')}"
},
{
"trKey": "CMake",
"value": "cmake",
- "condition": "%{JS: value('Plugins').indexOf('CMakeProjectManager') >= 0}"
+ "condition": "%{JS: isPluginRunning('cmakeprojectmanager')}"
+ },
+ {
+ "trKey": "CMake for Qt 6.5 and Later",
+ "value": "cmake-qt6",
+ "condition": "%{JS: isPluginRunning('cmakeprojectmanager')}"
},
{
"trKey": "Qbs",
"value": "qbs",
- "condition": "%{JS: value('Plugins').indexOf('QbsProjectManager') >= 0}"
+ "condition": "%{JS: isPluginRunning('qbsprojectmanager')}"
},
{
"trKey": "Meson",
"value": "meson",
- "condition": "%{JS: value('Plugins').indexOf('MesonProjectManager') >= 0}"
+ "condition": "%{JS: isPluginRunning('mesonprojectmanager')}"
}
]
}
@@ -81,8 +87,10 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{JS: !value('IsSubproject')}",
- "data": { "projectFilePath": "%{ProjectFile}" }
+ "data": {
+ "projectFilePath": "%{ProjectFile}",
+ "requiredFeatures": [ "%{FeatureQt}"]
+ }
},
{
"trDisplayName": "Project Management",
@@ -107,6 +115,12 @@
"openAsProject": true,
"condition": "%{JS: value('BuildSystem') === 'cmake'}"
},
+ {
+ "source": "CMakeLists-Qt6.txt",
+ "target": "CMakeLists.txt",
+ "openAsProject": true,
+ "condition": "%{JS: value('BuildSystem') === 'cmake-qt6'}"
+ },
{
"source": "file.qbs",
"target": "%{QbsFile}",
diff --git a/share/qtcreator/templates/wizards/projects/cpplibrary/wizard.json b/share/qtcreator/templates/wizards/projects/cpplibrary/wizard.json
index 39a25fa2f63..5bb6749fee6 100644
--- a/share/qtcreator/templates/wizards/projects/cpplibrary/wizard.json
+++ b/share/qtcreator/templates/wizards/projects/cpplibrary/wizard.json
@@ -49,7 +49,7 @@
"trDisplayName": "Define Build System",
"trShortTitle": "Build System",
"typeId": "Fields",
- "enabled": "%{JS: !value('IsSubproject')}",
+ "skipForSubprojects": true,
"data":
[
{
@@ -290,7 +290,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{JS: !value('IsSubproject')}",
"data": { "projectFilePath": "%{ProjectFile}" }
},
{
diff --git a/share/qtcreator/templates/wizards/projects/git.ignore b/share/qtcreator/templates/wizards/projects/git.ignore
index 4a0b530afd2..aa3808c5a9e 100644
--- a/share/qtcreator/templates/wizards/projects/git.ignore
+++ b/share/qtcreator/templates/wizards/projects/git.ignore
@@ -37,6 +37,7 @@ Thumbs.db
# qtcreator generated files
*.pro.user*
+*.qbs.user*
CMakeLists.txt.user*
# xemacs temporary files
@@ -72,3 +73,10 @@ CMakeLists.txt.user*
*.dll
*.exe
+# Directories with generated files
+.moc/
+.obj/
+.pch/
+.rcc/
+.uic/
+/build*/
diff --git a/share/qtcreator/templates/wizards/projects/nim/wizard.json b/share/qtcreator/templates/wizards/projects/nim/wizard.json
index 68970d4d9ac..6a84ca3d463 100644
--- a/share/qtcreator/templates/wizards/projects/nim/wizard.json
+++ b/share/qtcreator/templates/wizards/projects/nim/wizard.json
@@ -29,7 +29,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{JS: !value('IsSubproject')}",
"data": { "projectFilePath": "%{ProjectFile}" }
},
{
diff --git a/share/qtcreator/templates/wizards/projects/nimble/wizard.json b/share/qtcreator/templates/wizards/projects/nimble/wizard.json
index 8a0a14b8304..657aad71bb7 100644
--- a/share/qtcreator/templates/wizards/projects/nimble/wizard.json
+++ b/share/qtcreator/templates/wizards/projects/nimble/wizard.json
@@ -177,7 +177,6 @@
"trDisplayName":"Kit Selection",
"trShortTitle":"Kits",
"typeId":"Kits",
- "enabled":"%{JS: !value('IsSubproject')}",
"data":{
"projectFilePath":"%{ProjectFile}"
}
diff --git a/share/qtcreator/templates/wizards/projects/plainc/wizard.json b/share/qtcreator/templates/wizards/projects/plainc/wizard.json
index c2814ac9473..a0d3bf3ec20 100644
--- a/share/qtcreator/templates/wizards/projects/plainc/wizard.json
+++ b/share/qtcreator/templates/wizards/projects/plainc/wizard.json
@@ -1,6 +1,6 @@
{
"version": 1,
- "supportedProjectTypes": [ "CMakeProjectManager.CMakeProject", "Qbs.QbsProject", "Qt4ProjectManager.Qt4Project" ],
+ "supportedProjectTypes": [ "MesonProjectManager.MesonProject", "CMakeProjectManager.CMakeProject", "Qbs.QbsProject", "Qt4ProjectManager.Qt4Project" ],
"id": "A.Plain C Application",
"category": "I.Projects",
"trDescription": "Creates a simple C application with no dependencies.",
@@ -31,7 +31,7 @@
"trDisplayName": "Define Build System",
"trShortTitle": "Build System",
"typeId": "Fields",
- "enabled": "%{JS: !value('IsSubproject')}",
+ "skipForSubprojects": true,
"data":
[
{
@@ -73,7 +73,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{JS: !value('IsSubproject')}",
"data": { "projectFilePath": "%{ProjectFile}" }
},
{
diff --git a/share/qtcreator/templates/wizards/projects/plaincpp/wizard.json b/share/qtcreator/templates/wizards/projects/plaincpp/wizard.json
index 0e1ca061dc8..cffdb7bb78d 100644
--- a/share/qtcreator/templates/wizards/projects/plaincpp/wizard.json
+++ b/share/qtcreator/templates/wizards/projects/plaincpp/wizard.json
@@ -1,6 +1,6 @@
{
"version": 1,
- "supportedProjectTypes": [ "CMakeProjectManager.CMakeProject", "Qbs.QbsProject", "Qt4ProjectManager.Qt4Project" ],
+ "supportedProjectTypes": [ "MesonProjectManager.MesonProject", "CMakeProjectManager.CMakeProject", "Qbs.QbsProject", "Qt4ProjectManager.Qt4Project" ],
"id": "R.Plain Cpp Application",
"category": "I.Projects",
"trDescription": "Creates a simple C++ application with no dependencies.",
@@ -31,7 +31,7 @@
"trDisplayName": "Define Build System",
"trShortTitle": "Build System",
"typeId": "Fields",
- "enabled": "%{JS: ! %{IsSubproject}}",
+ "skipForSubprojects": true,
"data":
[
{
@@ -73,7 +73,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{JS: ! %{IsSubproject}}",
"data": { "projectFilePath": "%{ProjectFile}" }
},
{
diff --git a/share/qtcreator/templates/wizards/projects/qmake/empty/wizard.json b/share/qtcreator/templates/wizards/projects/qmake/empty/wizard.json
index 1c449e0c0d3..24256547669 100644
--- a/share/qtcreator/templates/wizards/projects/qmake/empty/wizard.json
+++ b/share/qtcreator/templates/wizards/projects/qmake/empty/wizard.json
@@ -12,8 +12,7 @@
"enabled": "%{JS: value('Plugins').indexOf('QmakeProjectManager') >= 0}",
"options":
[
- { "key": "ProFileName", "value": "%{JS: Util.fileName(value('ProjectDirectory') + '/' + value('ProjectName'), 'pro')}" },
- { "key": "IsTopLevelProject", "value": "%{JS: !value('Exists:ProjectExplorer.Profile.Ids')}" }
+ { "key": "ProFileName", "value": "%{JS: Util.fileName(value('ProjectDirectory') + '/' + value('ProjectName'), 'pro')}" }
],
"pages":
@@ -28,7 +27,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{IsTopLevelProject}",
"data": { "projectFilePath": "%{ProFileName}" }
},
{
@@ -52,7 +50,7 @@
{
"source": "../../git.ignore",
"target": "%{ProjectDirectory}/.gitignore",
- "condition": "%{JS: value('IsTopLevelProject') && value('VersionControl') === 'G.Git'}"
+ "condition": "%{JS: !value('IsSubproject') && value('VersionControl') === 'G.Git'}"
}
]
}
diff --git a/share/qtcreator/templates/wizards/projects/qtquick2-extension/wizard.json b/share/qtcreator/templates/wizards/projects/qtquick2-extension/wizard.json
index d12edc4576d..c2692ee641e 100644
--- a/share/qtcreator/templates/wizards/projects/qtquick2-extension/wizard.json
+++ b/share/qtcreator/templates/wizards/projects/qtquick2-extension/wizard.json
@@ -1,6 +1,6 @@
{
"version": 1,
- "supportedProjectTypes": [ "Qt4ProjectManager.Qt4Project" ],
+ "supportedProjectTypes": [ "Qt4ProjectManager.Qt4Project", "CMakeProjectManager.CMakeProject" ],
"id": "M.QtQuick2ExtensionPlugin",
"category": "G.Library",
"trDescription": "Creates a C++ plugin to load Qt Quick extensions dynamically into applications using the QQmlEngine class.",
@@ -43,7 +43,7 @@
"trDisplayName": "Define Build System",
"trShortTitle": "Build System",
"typeId": "Fields",
- "enabled": "%{JS: !value('IsSubproject')}",
+ "skipForSubprojects": true,
"data":
[
{
@@ -173,7 +173,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{JS: !value('IsSubproject')}",
"data": {
"projectFilePath": "%{ProjectFile}",
"requiredFeatures": [ "QtSupport.Wizards.FeatureQtQuick", "%{QtQuickFeature}" ]
diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/CMakeLists.txt b/share/qtcreator/templates/wizards/projects/qtquickapplication/CMakeLists.txt
index 5ab817b9bfe..d7ae810c033 100644
--- a/share/qtcreator/templates/wizards/projects/qtquickapplication/CMakeLists.txt
+++ b/share/qtcreator/templates/wizards/projects/qtquickapplication/CMakeLists.txt
@@ -7,11 +7,11 @@ set(CMAKE_AUTOMOC ON)
@endif
set(CMAKE_CXX_STANDARD_REQUIRED ON)
-find_package(Qt6 %{MinimumSupportedQtVersion} REQUIRED COMPONENTS Quick)
+find_package(Qt6 REQUIRED COMPONENTS Quick)
@if %{HasQSPSetup}
@if %{UsesAutoResourcePrefix}
-qt_standard_project_setup(REQUIRES 6.5)
+qt_standard_project_setup(REQUIRES %{MinimumSupportedQtVersion})
@else
qt_standard_project_setup()
@endif
diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/wizard.json b/share/qtcreator/templates/wizards/projects/qtquickapplication/wizard.json
index 83a6cd534c0..0e3a07c3c97 100644
--- a/share/qtcreator/templates/wizards/projects/qtquickapplication/wizard.json
+++ b/share/qtcreator/templates/wizards/projects/qtquickapplication/wizard.json
@@ -3,7 +3,7 @@
"supportedProjectTypes": [ "CMakeProjectManager.CMakeProject" ],
"id": "U.QtQuickApplicationEmpty",
"category": "D.ApplicationQt",
- "trDescription": "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.\n\nYou 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.",
+ "trDescription": "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.",
"trDisplayName": "Qt Quick Application",
"trDisplayCategory": "Application (Qt)",
"icon": "icon.png",
@@ -54,18 +54,6 @@
"typeId": "Fields",
"data":
[
- {
- "name": "QdsProjectStyle",
- "trDisplayName": "Creates a project that you can open in Qt Design Studio",
- "trToolTip": "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.",
- "type": "CheckBox",
- "span": true,
- "persistenceKey": "QtQuick.QdsProjectStyle",
- "data":
- {
- "checked": false
- }
- },
{
"name": "UseVirtualKeyboard",
"trDisplayName": "Use Qt Virtual Keyboard",
@@ -79,7 +67,7 @@
},
{
"name": "MinimumSupportedQtVersion",
- "trDisplayName": "The minimum version of Qt you want to build the application for",
+ "trDisplayName": "Minimum required Qt version:",
"type": "ComboBox",
"data":
{
@@ -97,7 +85,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{JS: !value('IsSubproject')}",
"data": {
"projectFilePath": "%{ProjectFile}",
"requiredFeatures": [ "QtSupport.Wizards.FeatureQtQmlCMakeApi", "%{FeatureQt}" ]
@@ -117,146 +104,21 @@
[
{
"source": "CMakeLists.txt",
- "openAsProject": true,
- "condition": "%{NoQdsProjectStyle}"
+ "openAsProject": true
},
{
"source": "main.cpp",
- "target": "%{MainCppFileName}",
- "condition": "%{NoQdsProjectStyle}"
+ "target": "%{MainCppFileName}"
},
{
"source": "Main.qml.tpl",
"target": "Main.qml",
- "openInEditor": true,
- "condition": "%{NoQdsProjectStyle}"
+ "openInEditor": true
},
{
"source": "../git.ignore",
"target": ".gitignore",
- "condition": "%{JS: %{NoQdsProjectStyle} && !value('IsSubproject') && value('VersionControl') === 'G.Git' }"
- }
- ]
- },
- {
- "typeId": "File",
- "data":
- [
- {
- "source": "%{QdsWizardPath}/common/app.qmlproject.tpl",
- "target": "%{ProjectDirectory}/%{QmlProjectFileName}",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/common/CMakeLists.main.txt.tpl",
- "target": "%{ProjectDirectory}/CMakeLists.txt",
- "openAsProject": true,
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/common/qmlmodules.tpl",
- "target": "%{ProjectDirectory}/qmlmodules",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/common/qmlcomponents.tpl",
- "target": "%{ProjectDirectory}/qmlcomponents",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/common/insight.tpl",
- "target": "%{ProjectDirectory}/insight",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/common/main.qml",
- "target": "%{ProjectDirectory}/main.qml",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/common/qtquickcontrols2.conf.tpl",
- "target": "%{ProjectDirectory}/qtquickcontrols2.conf",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/common/main.cpp.tpl",
- "target": "%{ProjectDirectory}/src/main.cpp",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/common/app_environment.h.tpl",
- "target": "%{ProjectDirectory}/src/app_environment.h",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/common/import_qml_plugins.h.tpl",
- "target": "%{ProjectDirectory}/src/import_qml_plugins.h",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/common/import_qml_components_plugins.h.tpl",
- "target": "%{ProjectDirectory}/src/import_qml_components_plugins.h",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/common/CMakeLists.content.txt.tpl",
- "target": "%{ProjectDirectory}/content/CMakeLists.txt",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/common/App.qml.tpl",
- "target": "%{ProjectDirectory}/content/App.qml",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/application/Screen01.ui.qml.tpl",
- "target": "%{ProjectDirectory}/content/Screen01.ui.qml",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/common/fonts.txt",
- "target": "%{ProjectDirectory}/content/fonts/fonts.txt",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/common/asset_imports.txt",
- "target": "%{ProjectDirectory}/asset_imports/asset_imports.txt",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/common/CMakeLists.imports.txt.tpl",
- "target": "%{ProjectDirectory}/imports/CMakeLists.txt",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/shared-plugin/name/CMakeLists.importmodule.txt.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/CMakeLists.txt",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/shared-plugin/name/importmodule.qmldir.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/qmldir",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/shared-plugin/name/Constants.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/Constants.qml",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/shared-plugin/name/EventListModel.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/EventListModel.qml",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/shared-plugin/name/EventListSimulator.qml.tpl",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/EventListSimulator.qml",
- "condition": "%{QdsProjectStyle}"
- },
- {
- "source": "%{QdsWizardPath}/shared-plugin/name/designer/plugin.metainfo",
- "target": "%{ProjectDirectory}/imports/%{ImportModuleName}/designer/plugin.metainfo",
- "condition": "%{QdsProjectStyle}"
+ "condition": "%{JS: !value('IsSubproject') && value('VersionControl') === 'G.Git' }"
}
]
}
diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication_compat/empty/wizard.json b/share/qtcreator/templates/wizards/projects/qtquickapplication_compat/empty/wizard.json
index 3ecbaa0be93..3a72900c7b4 100644
--- a/share/qtcreator/templates/wizards/projects/qtquickapplication_compat/empty/wizard.json
+++ b/share/qtcreator/templates/wizards/projects/qtquickapplication_compat/empty/wizard.json
@@ -43,7 +43,7 @@
"trDisplayName": "Define Build System",
"trShortTitle": "Build System",
"typeId": "Fields",
- "enabled": "%{JS: !value('IsSubproject')}",
+ "skipForSubprojects": true,
"data":
[
{
@@ -166,7 +166,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{JS: !value('IsSubproject')}",
"data": {
"projectFilePath": "%{ProjectFile}",
"requiredFeatures": [ "QtSupport.Wizards.FeatureQt", "%{QtQuickFeature}" ]
diff --git a/share/qtcreator/templates/wizards/projects/qtquickuiprototype/wizard.json b/share/qtcreator/templates/wizards/projects/qtquickuiprototype/wizard.json
index dd64ccca659..7453bfa34c4 100644
--- a/share/qtcreator/templates/wizards/projects/qtquickuiprototype/wizard.json
+++ b/share/qtcreator/templates/wizards/projects/qtquickuiprototype/wizard.json
@@ -16,7 +16,21 @@
{ "key": "QmlProjectFileName", "value": "%{JS: Util.fileName(value('ProjectDirectory') + '/' + value('ProjectName'), 'qmlproject')}" },
{ "key": "MainQmlFileName", "value": "%{JS: Util.fileName(value('ProjectName'), 'qml')}" },
{ "key": "UseVirtualKeyboardByDefault", "value": "%{JS: value('Plugins').indexOf('Boot2Qt') >= 0 || value('Plugins').indexOf('Boot2QtQdb') >= 0}" },
- { "key": "EnableCMakeGeneration", "value": "%{JS: false}" }
+ { "key": "EnableCMakeGeneration", "value": "%{JS: false}" },
+ { "key": "QdsWizardPath", "value": "%{IDE:ResourcePath}/qmldesigner/studio_templates/projects" },
+ { "key": "NoQdsProjectStyle", "value": "%{JS: !%{QdsProjectStyle} }" },
+
+ { "key": "AssetDir", "value": "Generated" },
+ { "key": "ContentDir", "value": "%{ProjectName}Content" },
+ { "key": "ImportModuleName", "value": "%{ProjectName}" },
+ { "key": "ImportModuleVersion", "value": "" },
+ { "key": "IsQt6Project", "value": true },
+ { "key": "QtQuickControlsStyle", "value": "Material" },
+ { "key": "QtQuickControlsStyleTheme", "value": "Light" },
+ { "key": "QtQuickVersion", "value": "6.5" },
+ { "key": "ScreenHeight", "value": 1080 },
+ { "key": "ScreenWidth", "value": 1920 },
+ { "key": "UIClassName", "value": "Screen01" }
],
"pages":
@@ -32,6 +46,17 @@
"typeId": "Fields",
"data":
[
+ {
+ "name": "QdsProjectStyle",
+ "trDisplayName": "Create a project that you can open in Qt Design Studio",
+ "trToolTip": "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.",
+ "type": "CheckBox",
+ "persistenceKey": "QtQuick.QdsProjectStyle",
+ "data":
+ {
+ "checked": false
+ }
+ },
{
"name": "UseVirtualKeyboard",
"trDisplayName": "Use Qt Virtual Keyboard",
@@ -47,7 +72,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{JS: ! %{IsSubproject}}",
"data": {
"projectFilePath": "%{QmlProjectFileName}",
"requiredFeatures": [ "QtSupport.Wizards.FeatureQtQuickProject", "QtSupport.Wizards.FeatureQtQuick.6" ]
@@ -68,17 +92,81 @@
{
"source": "app.qmlproject",
"target": "%{QmlProjectFileName}",
- "openAsProject": true
+ "openAsProject": true,
+ "condition": "%{NoQdsProjectStyle}"
},
{
"source": "../qtquickapplication/Main.qml.tpl",
"target": "%{ProjectDirectory}/%{MainQmlFileName}",
- "openInEditor": true
+ "openInEditor": true,
+ "condition": "%{NoQdsProjectStyle}"
},
{
"source": "../git.ignore",
"target": "%{ProjectDirectory}/.gitignore",
- "condition": "%{JS: !value('IsSubproject') && value('VersionControl') === 'G.Git'}"
+ "condition": "%{JS: %{NoQdsProjectStyle} && !value('IsSubproject') && value('VersionControl') === 'G.Git'}"
+ }
+ ]
+ },
+ {
+ "typeId": "File",
+ "data":
+ [
+ {
+ "source": "%{QdsWizardPath}/common/app.qmlproject.tpl",
+ "target": "%{QmlProjectFileName}",
+ "openAsProject": true,
+ "condition": "%{QdsProjectStyle}"
+ },
+ {
+ "source": "%{QdsWizardPath}/common/qtquickcontrols2.conf.tpl",
+ "target": "%{ProjectDirectory}/qtquickcontrols2.conf",
+ "condition": "%{QdsProjectStyle}"
+ },
+ {
+ "source": "%{QdsWizardPath}/common/App.qml.tpl",
+ "target": "%{ProjectDirectory}/%{ContentDir}/App.qml",
+ "condition": "%{QdsProjectStyle}"
+ },
+ {
+ "source": "%{QdsWizardPath}/application/Screen01.ui.qml.tpl",
+ "target": "%{ProjectDirectory}/%{ContentDir}/Screen01.ui.qml",
+ "condition": "%{QdsProjectStyle}"
+ },
+ {
+ "source": "%{QdsWizardPath}/common/fonts.txt",
+ "target": "%{ProjectDirectory}/%{ContentDir}/fonts/fonts.txt",
+ "condition": "%{QdsProjectStyle}"
+ },
+ {
+ "source": "%{QdsWizardPath}/common/asset_imports.txt",
+ "target": "%{ProjectDirectory}/%{AssetDir}/Quick3DAssets.txt",
+ "condition": "%{QdsProjectStyle}"
+ },
+ {
+ "source": "%{QdsWizardPath}/shared-plugin/name/importmodule.qmldir.tpl",
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/qmldir",
+ "condition": "%{QdsProjectStyle}"
+ },
+ {
+ "source": "%{QdsWizardPath}/shared-plugin/name/Constants.qml.tpl",
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/Constants.qml",
+ "condition": "%{QdsProjectStyle}"
+ },
+ {
+ "source": "%{QdsWizardPath}/shared-plugin/name/EventListModel.qml.tpl",
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListModel.qml",
+ "condition": "%{QdsProjectStyle}"
+ },
+ {
+ "source": "%{QdsWizardPath}/shared-plugin/name/EventListSimulator.qml.tpl",
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/EventListSimulator.qml",
+ "condition": "%{QdsProjectStyle}"
+ },
+ {
+ "source": "%{QdsWizardPath}/shared-plugin/name/designer/plugin.metainfo",
+ "target": "%{ProjectDirectory}/%{ImportModuleName}/designer/plugin.metainfo",
+ "condition": "%{QdsProjectStyle}"
}
]
}
diff --git a/share/qtcreator/templates/wizards/projects/qtwidgetsapplication/CMakeLists-Qt6.txt b/share/qtcreator/templates/wizards/projects/qtwidgetsapplication/CMakeLists-Qt6.txt
new file mode 100644
index 00000000000..f2395d7a0b5
--- /dev/null
+++ b/share/qtcreator/templates/wizards/projects/qtwidgetsapplication/CMakeLists-Qt6.txt
@@ -0,0 +1,48 @@
+cmake_minimum_required(VERSION 3.19)
+project(%{ProjectName} LANGUAGES CXX)
+
+@if %{HasTranslation}
+find_package(Qt6 6.5 REQUIRED COMPONENTS Core Widgets LinguistTools)
+@else
+find_package(Qt6 6.5 REQUIRED COMPONENTS Core Widgets)
+@endif
+
+qt_standard_project_setup()
+
+qt_add_executable(%{ProjectName}
+ WIN32 MACOSX_BUNDLE
+ %{MainFileName}
+ %{SrcFileName}
+ %{HdrFileName}
+@if %{GenerateForm}
+ %{FormFileName}
+@endif
+)
+
+@if %{HasTranslation}
+qt_add_translations(
+ TARGETS %{ProjectName}
+ TS_FILES %{TsFileName}
+)
+
+@endif
+target_link_libraries(%{ProjectName}
+ PRIVATE
+ Qt::Core
+ Qt::Widgets
+)
+
+include(GNUInstallDirs)
+
+install(TARGETS %{ProjectName}
+ BUNDLE DESTINATION .
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+)
+
+qt_generate_deploy_app_script(
+ TARGET %{ProjectName}
+ OUTPUT_SCRIPT deploy_script
+ NO_UNSUPPORTED_PLATFORM_ERROR
+)
+install(SCRIPT ${deploy_script})
diff --git a/share/qtcreator/templates/wizards/projects/qtwidgetsapplication/wizard.json b/share/qtcreator/templates/wizards/projects/qtwidgetsapplication/wizard.json
index 48791e4fd87..d887f203fd6 100644
--- a/share/qtcreator/templates/wizards/projects/qtwidgetsapplication/wizard.json
+++ b/share/qtcreator/templates/wizards/projects/qtwidgetsapplication/wizard.json
@@ -9,11 +9,14 @@
"icon": "../../global/guiapplication.png",
"iconKind": "Themed",
"featuresRequired": [ "QtSupport.Wizards.FeatureQt" ],
- "enabled": "%{JS: value('Plugins').indexOf('QmakeProjectManager') >= 0 || value('Plugins').indexOf('CMakeProjectManager') >= 0 || value('Plugins').indexOf('QbsProjectManager') >= 0 || value('Plugins').indexOf('MesonProjectManager') >= 0}",
+ "enabled": "%{JS: isAnyPluginRunning(['qmakeprojectmanager', 'qbsprojectmanager', 'cmakeprojectmanager', 'mesonprojectmanager'])}",
"options":
[
- { "key": "ProjectFile", "value": "%{JS: value('BuildSystem') === 'qmake' ? value('ProFile') : value('BuildSystem') === 'cmake' ? value('CMakeFile') : value('BuildSystem') === 'meson' ? value('MesonFile') : value('QbsFile')}" },
+ {
+ "key": "ProjectFile",
+ "value": "%{JS: value(\\{qmake: 'ProFile', cmake: 'CMakeFile', meson: 'MesonFile', qbs: 'QbsFile', 'cmake-qt6': 'CMakeFile'\\}[value('BuildSystem')]) }"
+ },
{ "key": "ProFile", "value": "%{JS: Util.fileName(value('ProjectDirectory') + '/' + value('ProjectName'), 'pro')}" },
{ "key": "CMakeFile", "value": "%{ProjectDirectory}/CMakeLists.txt" },
{ "key": "MesonFile", "value": "%{ProjectDirectory}/meson.build" },
@@ -22,9 +25,9 @@
{ "key": "UiHdrFileName", "value": "%{JS: (value('BuildSystem') === 'cmake' ? (Util.path(value('FormFileName')) + '/') : '') + 'ui_' + Util.completeBaseName(value('FormFileName')) + '.h'}" },
{ "key": "CN", "value": "%{JS: Cpp.className(value('Class'))}" },
{ "key": "HasTranslation", "value": "%{JS: value('TsFileName') !== ''}" },
- { "key": "GUARD", "value": "%{JS: Cpp.headerGuard(value('HdrFileName'))}" }
+ { "key": "GUARD", "value": "%{JS: Cpp.headerGuard(value('HdrFileName'))}" },
+ { "key": "FeatureQt", "value": "QtSupport.Wizards.FeatureQt%{JS: value('BuildSystem') === 'cmake-qt6' ? '.6.5' : ''}" }
],
-
"pages":
[
{
@@ -37,7 +40,7 @@
"trDisplayName": "Define Build System",
"trShortTitle": "Build System",
"typeId": "Fields",
- "enabled": "%{JS: !value('IsSubproject')}",
+ "skipForSubprojects": true,
"data":
[
{
@@ -53,22 +56,27 @@
{
"trKey": "qmake",
"value": "qmake",
- "condition": "%{JS: value('Plugins').indexOf('QmakeProjectManager') >= 0}"
+ "condition": "%{JS: isPluginRunning('qmakeprojectmanager')}"
},
{
"trKey": "CMake",
"value": "cmake",
- "condition": "%{JS: value('Plugins').indexOf('CMakeProjectManager') >= 0}"
+ "condition": "%{JS: isPluginRunning('cmakeprojectmanager')}"
+ },
+ {
+ "trKey": "CMake for Qt 6.5 and Later",
+ "value": "cmake-qt6",
+ "condition": "%{JS: isPluginRunning('cmakeprojectmanager')}"
},
{
"trKey": "Meson",
"value": "meson",
- "condition": "%{JS: value('Plugins').indexOf('MesonProjectManager') >= 0}"
+ "condition": "%{JS: isPluginRunning('mesonprojectmanager')}"
},
{
"trKey": "Qbs",
"value": "qbs",
- "condition": "%{JS: value('Plugins').indexOf('QbsProjectManager') >= 0}"
+ "condition": "%{JS: isPluginRunning('qbsprojectmanager')}"
}
]
}
@@ -157,8 +165,10 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{JS: !value('IsSubproject')}",
- "data": { "projectFilePath": "%{ProjectFile}" }
+ "data": {
+ "projectFilePath": "%{ProjectFile}",
+ "requiredFeatures": [ "%{FeatureQt}"]
+ }
},
{
"trDisplayName": "Project Management",
@@ -183,6 +193,12 @@
"openAsProject": true,
"condition": "%{JS: value('BuildSystem') === 'cmake'}"
},
+ {
+ "source": "CMakeLists-Qt6.txt",
+ "target": "CMakeLists.txt",
+ "openAsProject": true,
+ "condition": "%{JS: value('BuildSystem') === 'cmake-qt6'}"
+ },
{
"source": "project.qbs",
"target": "%{QbsFile}",
diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/MyPlugin.json.in b/share/qtcreator/templates/wizards/qtcreatorplugin/MyPlugin.json.in
index 2e62c447394..4706b175422 100644
--- a/share/qtcreator/templates/wizards/qtcreatorplugin/MyPlugin.json.in
+++ b/share/qtcreator/templates/wizards/qtcreatorplugin/MyPlugin.json.in
@@ -1,11 +1,14 @@
{
+ \"Id\" : \"%{JS: value('PluginName').toLowerCase()}\",
\"Name\" : \"%{PluginName}\",
\"Version\" : \"0.0.1\",
\"CompatVersion\" : \"0.0.1\",
\"Vendor\" : \"%{VendorName}\",
+ \"VendorId\" : \"%{JS: value('VendorName').toLowerCase().replace(/ /g, '')}\",
\"Copyright\" : \"%{Copyright}\",
\"License\" : \"%{License}\",
\"Description\" : \"%{Description}\",
\"Url\" : \"%{Url}\",
+ \"DocumentationUrl\" : \"\",
${IDE_PLUGIN_DEPENDENCIES}
}
diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/github_scripts_plugin.json b/share/qtcreator/templates/wizards/qtcreatorplugin/github_scripts_plugin.json
new file mode 100644
index 00000000000..8b031dedbfb
--- /dev/null
+++ b/share/qtcreator/templates/wizards/qtcreatorplugin/github_scripts_plugin.json
@@ -0,0 +1,53 @@
+{
+ "name": "%{PluginName}",
+ "vendor": "%{VendorName}",
+ "tags": [
+ "Some tag",
+ "Other tag"
+ ],
+ "compatibility": "Qt 6.0",
+ "platforms": [
+ "Windows",
+ "macOS",
+ "Linux"
+ ],
+ "license": "os",
+ "version": "0.0.1",
+ "status": "draft",
+ "is_pack": false,
+ "released_at": null,
+ "version_history": [
+ {
+ "version": "0.0.1",
+ "is_latest": true,
+ "released_at": "2024-01-24T15:00:00Z"
+ }
+ ],
+ "icon": "https://url/to/icon-image",
+ "small_icon": "https://url/to/small-icon-image",
+ "description_paragraphs": [
+ {
+ "header": "Description",
+ "text": [
+ "Put a short description of your plugin here"
+ ]
+ }
+ ],
+ "description_links": [
+ {
+ "url": "https://www.qt.io",
+ "link_text": "Online documentation"
+ }
+ ],
+ "description_images": [
+ {
+ "url": "https://www.qt.io/hs-fs/hubfs/Outrun_QT_INT_0310.jpg?width=600&name=Outrun_QT_INT_0310.jpg",
+ "image_label": "Example 1."
+ }
+ ],
+ "copyright": "%{Copyright}",
+ "download_history": {
+ "download_count": 0
+ },
+ "plugin_sets": []
+}
diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/github_scripts_registerPlugin.js b/share/qtcreator/templates/wizards/qtcreatorplugin/github_scripts_registerPlugin.js
new file mode 100644
index 00000000000..535fa86ef02
--- /dev/null
+++ b/share/qtcreator/templates/wizards/qtcreatorplugin/github_scripts_registerPlugin.js
@@ -0,0 +1,147 @@
+const fs = require('fs');
+const path = require('path');
+
+const updatePluginData = (plugin, env, pluginQtcData) => {
+ const dictionary_platform = {
+ 'Windows': `${env.PLUGIN_DOWNLOAD_URL}/${env.PLUGIN_NAME}-${env.QT_CREATOR_VERSION}-Windows-x64.7z`,
+ 'Linux': `${env.PLUGIN_DOWNLOAD_URL}/${env.PLUGIN_NAME}-${env.QT_CREATOR_VERSION}-Linux-x64.7z`,
+ 'macOS': `${env.PLUGIN_DOWNLOAD_URL}/${env.PLUGIN_NAME}-${env.QT_CREATOR_VERSION}-macOS-universal.7z`
+ };
+
+ plugin.core_compat_version = env.QT_CREATOR_VERSION_INTERNAL;
+ plugin.core_version = env.QT_CREATOR_VERSION_INTERNAL;
+ plugin.status = "draft";
+
+ plugin.plugins.forEach(pluginsEntry => {
+ pluginsEntry.url = dictionary_platform[plugin.host_os];
+ pluginsEntry.meta_data = pluginQtcData;
+ });
+ return plugin;
+};
+
+const createNewPluginData = (env, platform, pluginQtcData) => {
+ const pluginJson = {
+ "status": "draft",
+ "core_compat_version": "",
+ "core_version": "",
+ "host_os": platform,
+ "host_os_version": "0", // TODO: pass the real data
+ "host_os_architecture": "x86_64", // TODO: pass the real data
+ "plugins": [
+ {
+ "url": "",
+ "size": 5000, // TODO: check if it is needed, pass the real data
+ "meta_data": {},
+ "dependencies": []
+ }
+ ]
+ };
+
+ updatePluginData(pluginJson, env, pluginQtcData);
+ return pluginJson;
+}
+
+const updateServerPluginJson = (endJsonData, pluginQtcData, env) => {
+ // Update the global data in mainData
+ endJsonData.name = pluginQtcData.Name;
+ endJsonData.vendor = pluginQtcData.Vendor;
+ endJsonData.version = pluginQtcData.Version;
+ endJsonData.copyright = pluginQtcData.Copyright;
+ endJsonData.status = "draft";
+
+ endJsonData.version_history[0].version = pluginQtcData.Version;
+
+ endJsonData.description_paragraphs = [
+ {
+ header: "Description",
+ text: [
+ pluginQtcData.Description
+ ]
+ }
+ ];
+
+ let found = false;
+ // Update or Add the plugin data for the current Qt Creator version
+ for (const plugin of endJsonData.plugin_sets) {
+ if (plugin.core_compat_version === env.QT_CREATOR_VERSION_INTERNAL) {
+ updatePluginData(plugin, env, pluginQtcData);
+ found = true;
+ }
+ }
+
+ if (!found) {
+ for (const platform of ['Windows', 'Linux', 'macOS']) {
+ endJsonData.plugin_sets.push(createNewPluginData(env, platform, pluginQtcData));
+ }
+ }
+
+ // Save the updated JSON file
+ const serverPluginJsonPath = path.join(__dirname, `${env.PLUGIN_NAME}.json`);
+ fs.writeFileSync(serverPluginJsonPath, JSON.stringify(endJsonData, null, 2), 'utf8');
+};
+
+const request = async (type, url, token, data) => {
+ const response = await fetch(url, {
+ method: type,
+ headers: {
+ 'Authorization': `Bearer ${token}`,
+ 'accept': 'application/json',
+ 'Content-Type': 'application/json'
+ },
+ body: data ? JSON.stringify(data) : undefined
+ });
+ if (!response.ok) {
+ const errorResponse = await response.json();
+ console.error(`${type} Request Error Response:`, errorResponse); // Log the error response
+ throw new Error(`HTTP error! status: ${response.status}`);
+ }
+ return await response.json();
+}
+
+const put = (url, token, data) => request('PUT', url, token, data)
+const post = (url, token, data) => request('POST', url, token, data)
+const get = (url, token) => request('GET', url, token)
+
+const purgeCache = async (env) => {
+ try {
+ await post(`${env.API_URL}api/v1/cache/purgeall`, env.TOKEN, {});
+ console.log('Cache purged successfully');
+ } catch (error) {
+ console.error('Error:', error);
+ }
+};
+
+async function main() {
+ const env = {
+ PLUGIN_DOWNLOAD_URL: process.env.PLUGIN_DOWNLOAD_URL || process.argv[2],
+ PLUGIN_NAME: process.env.PLUGIN_NAME || process.argv[3],
+ QT_CREATOR_VERSION: process.env.QT_CREATOR_VERSION || process.argv[4],
+ QT_CREATOR_VERSION_INTERNAL: process.env.QT_CREATOR_VERSION_INTERNAL || process.argv[5],
+ TOKEN: process.env.TOKEN || process.argv[6],
+ API_URL: process.env.API_URL || process.argv[7] || ''
+ };
+
+ const pluginQtcData = require(`../../${env.PLUGIN_NAME}-origin/${env.PLUGIN_NAME}.json`);
+ const templateFileData = require('./plugin.json');
+
+ if (env.API_URL === '') {
+ updateServerPluginJson(templateFileData, pluginQtcData, env);
+ process.exit(0);
+ }
+
+ const response = await get(`${env.API_URL}api/v1/admin/extensions?search=${env.PLUGIN_NAME}`, env.TOKEN);
+ if (response.items.length > 0 && response.items[0].extension_id !== '') {
+ const pluginId = response.items[0].extension_id;
+ console.log('Plugin found. Updating the plugin');
+ updateServerPluginJson(response.items[0], pluginQtcData, env);
+
+ await put(`${env.API_URL}api/v1/admin/extensions/${pluginId}`, env.TOKEN, response.items[0]);
+ } else {
+ console.log('No plugin found. Creating a new plugin');
+ updateServerPluginJson(templateFileData, pluginQtcData, env);
+ await post(`${env.API_URL}api/v1/admin/extensions`, env.TOKEN, templateFileData);
+ }
+ // await purgeCache(env);
+}
+
+main().then(() => console.log('JSON file updated successfully'));
diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/github_workflows_build_cmake.yml b/share/qtcreator/templates/wizards/qtcreatorplugin/github_workflows_build_cmake.yml
index d5e53f033b5..09cb8f2d2f9 100644
--- a/share/qtcreator/templates/wizards/qtcreatorplugin/github_workflows_build_cmake.yml
+++ b/share/qtcreator/templates/wizards/qtcreatorplugin/github_workflows_build_cmake.yml
@@ -6,7 +6,7 @@ env:
PLUGIN_NAME: %{PluginName}
QT_VERSION: %{JS: Util.qtVersion()}
QT_CREATOR_VERSION: %{JS: Util.qtCreatorVersion()}
- QT_CREATOR_SNAPSHOT: NO
+ QT_CREATOR_VERSION_INTERNAL: %{JS: Util.qtCreatorIdeVersion()}
MACOS_DEPLOYMENT_TARGET: "11.0"
CMAKE_VERSION: "3.29.6"
NINJA_VERSION: "1.12.1"
@@ -23,74 +23,44 @@ jobs:
- {
name: "Windows Latest MSVC", artifact: "Windows-x64",
os: windows-latest,
+ platform: windows_x64,
cc: "cl", cxx: "cl",
environment_script: "C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat",
}
- {
name: "Ubuntu Latest GCC", artifact: "Linux-x64",
os: ubuntu-latest,
+ platform: linux_x64,
cc: "gcc", cxx: "g++"
}
- {
name: "macOS Latest Clang", artifact: "macOS-universal",
os: macos-latest,
+ platform: mac_x64,
cc: "clang", cxx: "clang++"
}
steps:
- uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+
- name: Checkout submodules
id: git
shell: cmake -P {0}
run: |
if (${{github.ref}} MATCHES "tags/v(.*)")
- file(APPEND "$ENV{GITHUB_OUTPUT}" "tag=${CMAKE_MATCH_1}\\n")
+ file(APPEND "$ENV{GITHUB_OUTPUT}" "tag=${CMAKE_MATCH_1}")
else()
- file(APPEND "$ENV{GITHUB_OUTPUT}" "tag=${{github.run_id}}\\n")
+ file(APPEND "$ENV{GITHUB_OUTPUT}" "tag=${{github.run_id}}")
endif()
- name: Download Ninja and CMake
- shell: cmake -P {0}
- run: |
- set(cmake_version "$ENV{CMAKE_VERSION}")
- set(ninja_version "$ENV{NINJA_VERSION}")
-
- if ("${{ runner.os }}" STREQUAL "Windows")
- set(ninja_suffix "win.zip")
- set(cmake_suffix "windows-x86_64.zip")
- set(cmake_dir "cmake-${cmake_version}-windows-x86_64/bin")
- elseif ("${{ runner.os }}" STREQUAL "Linux")
- set(ninja_suffix "linux.zip")
- set(cmake_suffix "linux-x86_64.tar.gz")
- set(cmake_dir "cmake-${cmake_version}-linux-x86_64/bin")
- elseif ("${{ runner.os }}" STREQUAL "macOS")
- set(ninja_suffix "mac.zip")
- set(cmake_suffix "macos-universal.tar.gz")
- set(cmake_dir "cmake-${cmake_version}-macos-universal/CMake.app/Contents/bin")
- endif()
-
- set(ninja_url "https://github.com/ninja-build/ninja/releases/download/v${ninja_version}/ninja-${ninja_suffix}")
- file(DOWNLOAD "${ninja_url}" ./ninja.zip SHOW_PROGRESS)
- execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ./ninja.zip)
-
- set(cmake_url "https://github.com/Kitware/CMake/releases/download/v${cmake_version}/cmake-${cmake_version}-${cmake_suffix}")
- file(DOWNLOAD "${cmake_url}" ./cmake.zip SHOW_PROGRESS)
- execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ./cmake.zip)
-
- # Add to PATH environment variable
- file(TO_CMAKE_PATH "$ENV{GITHUB_WORKSPACE}/${cmake_dir}" cmake_dir)
- set(path_separator ":")
- if ("${{ runner.os }}" STREQUAL "Windows")
- set(path_separator ";")
- endif()
- file(APPEND "$ENV{GITHUB_PATH}" "$ENV{GITHUB_WORKSPACE}${path_separator}${cmake_dir}")
-
- if (NOT "${{ runner.os }}" STREQUAL "Windows")
- execute_process(
- COMMAND chmod +x ninja
- COMMAND chmod +x ${cmake_dir}/cmake
- )
- endif()
+ uses: lukka/get-cmake@latest
+ with:
+ cmakeVersion: ${{ env.CMAKE_VERSION }}
+ ninjaVersion: ${{ env.NINJA_VERSION }}
- name: Install system libs
shell: cmake -P {0}
@@ -184,40 +154,18 @@ jobs:
endif()
- name: Download Qt Creator
+ uses: qt-creator/install-dev-package@v1.2
+ with:
+ version: ${{ env.QT_CREATOR_VERSION }}
+ unzip-to: 'qtcreator'
+
+ - name: Extract Qt Creator
id: qt_creator
shell: cmake -P {0}
run: |
- string(REGEX MATCH "([0-9]+.[0-9]+).[0-9]+" outvar "$ENV{QT_CREATOR_VERSION}")
-
- set(qtc_base_url "https://download.qt.io/official_releases/qtcreator/${CMAKE_MATCH_1}/$ENV{QT_CREATOR_VERSION}/installer_source")
- set(qtc_snapshot "$ENV{QT_CREATOR_SNAPSHOT}")
- if (qtc_snapshot)
- set(qtc_base_url "https://download.qt.io/snapshots/qtcreator/${CMAKE_MATCH_1}/$ENV{QT_CREATOR_VERSION}/installer_source/${qtc_snapshot}")
- endif()
-
- if ("${{ runner.os }}" STREQUAL "Windows")
- set(qtc_platform "windows_x64")
- elseif ("${{ runner.os }}" STREQUAL "Linux")
- set(qtc_platform "linux_x64")
- elseif ("${{ runner.os }}" STREQUAL "macOS")
- set(qtc_platform "mac_x64")
- endif()
-
file(TO_CMAKE_PATH "$ENV{GITHUB_WORKSPACE}/qtcreator" qtc_dir)
- # Save the path for other steps
file(APPEND "$ENV{GITHUB_OUTPUT}" "qtc_dir=${qtc_dir}")
- file(MAKE_DIRECTORY qtcreator)
-
- message("Downloading Qt Creator from ${qtc_base_url}/${qtc_platform}")
-
- foreach(package qtcreator qtcreator_dev)
- file(DOWNLOAD
- "${qtc_base_url}/${qtc_platform}/${package}.7z" ./${package}.7z SHOW_PROGRESS)
- execute_process(COMMAND
- ${CMAKE_COMMAND} -E tar xvf ../${package}.7z WORKING_DIRECTORY qtcreator)
- endforeach()
-
- name: Build
shell: cmake -P {0}
run: |
@@ -276,11 +224,62 @@ jobs:
path: ./${{ env.PLUGIN_NAME }}-${{ env.QT_CREATOR_VERSION }}-${{ matrix.config.artifact }}.7z
name: ${{ env.PLUGIN_NAME}}-${{ env.QT_CREATOR_VERSION }}-${{ matrix.config.artifact }}.7z
- release:
+ # The json is the same for all platforms, but we need to save one
+ - name: Upload plugin json
+ if: matrix.config.os == 'ubuntu-latest'
+ uses: actions/upload-artifact@v4
+ with:
+ name: ${{ env.PLUGIN_NAME }}-origin-json
+ path: ./build/build/${{ env.PLUGIN_NAME }}.json
+
+ update_json:
if: contains(github.ref, 'tags/v')
runs-on: ubuntu-latest
needs: build
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-node@v4
+ with:
+ node-version: '20'
+
+ - name: Download the JSON file
+ uses: actions/download-artifact@v4
+ with:
+ name: ${{ env.PLUGIN_NAME }}-origin-json
+ path: ./${{ env.PLUGIN_NAME }}-origin
+
+ - name: Store Release upload_url
+ run: |
+ RELEASE_HTML_URL=$(echo "${{github.event.repository.html_url}}/releases/download/v${{ needs.build.outputs.tag }}")
+ echo "RELEASE_HTML_URL=${RELEASE_HTML_URL}" >> $GITHUB_ENV
+
+ - name: Run the Node.js script to update JSON
+ env:
+ QT_TOKEN: ${{ secrets.TOKEN }}
+ API_URL: ${{ secrets.API_URL }}
+ run: |
+ node .github/scripts/registerPlugin.js \
+ ${{ env.RELEASE_HTML_URL }} ${{ env.PLUGIN_NAME }} \
+ ${{ env.QT_CREATOR_VERSION }} ${{ env.QT_CREATOR_VERSION_INTERNAL }} \
+ ${{ env.QT_TOKEN }} ${{ env.API_URL }}
+
+ - name: Delete previous json artifacts
+ uses: geekyeggo/delete-artifact@v5
+ with:
+ name: ${{ env.PLUGIN_NAME }}*-json
+
+ - name: Upload the modified JSON file as an artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: plugin-json
+ path: .github/scripts/${{ env.PLUGIN_NAME }}.json
+
+ release:
+ if: contains(github.ref, 'tags/v')
+ runs-on: ubuntu-latest
+ needs: [build, update_json]
+
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.cpp b/share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.cpp
index d045fd19bb1..9a6a54b2c21 100644
--- a/share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.cpp
+++ b/share/qtcreator/templates/wizards/qtcreatorplugin/myplugin.cpp
@@ -18,31 +18,29 @@
namespace %{PluginName}::Internal {
-class %{CN} : public ExtensionSystem::IPlugin
+class %{CN} final : public ExtensionSystem::IPlugin
{
Q_OBJECT
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QtCreatorPlugin" FILE "%{PluginName}.json")
public:
- %{CN}()
- {
- // Create your members
- }
+ %{CN}() = default;
~%{CN}() final
{
// Unregister objects from the plugin manager's object pool
- // Delete members
+ // Other cleanup, if needed.
}
void initialize() final
{
- // Register objects in the plugin manager's object pool
+ // Set up this plugin's factories, if needed.
+ // Register objects in the plugin manager's object pool, if needed. (rare)
// Load settings
// Add actions to menus
// Connect to other plugins' signals
// In the initialize function, a plugin can be sure that the plugins it
- // depends on have initialized their members.
+ // depends on have passed their initialize() phase.
// If you need access to command line arguments or to report errors, use the
// bool IPlugin::initialize(const QStringList &arguments, QString *errorString)
@@ -62,9 +60,10 @@ public:
void extensionsInitialized() final
{
- // Retrieve objects from the plugin manager's object pool
+ // Retrieve objects from the plugin manager's object pool, if needed. (rare)
// In the extensionsInitialized function, a plugin can be sure that all
- // plugins that depend on it are completely initialized.
+ // plugins that depend on it have passed their initialize() and
+ // extensionsInitialized() phase.
}
ShutdownFlag aboutToShutdown() final
diff --git a/share/qtcreator/templates/wizards/qtcreatorplugin/wizard.json b/share/qtcreator/templates/wizards/qtcreatorplugin/wizard.json
index 0ac4d29ae23..a1e9bb00aa1 100644
--- a/share/qtcreator/templates/wizards/qtcreatorplugin/wizard.json
+++ b/share/qtcreator/templates/wizards/qtcreatorplugin/wizard.json
@@ -1,10 +1,10 @@
{
"version": 1,
- "supportedProjectTypes": [ "Qt4ProjectManager.Qt4Project" ],
+ "supportedProjectTypes": [ "CMakeProjectManager.CMakeProject" ],
"id": "R.QtCreatorPlugin",
"category": "G.Library",
"trDescription": "Creates a custom Qt Creator plugin.",
- "trDisplayName": "Qt Creator Plugin",
+ "trDisplayName": "Qt Creator C++ Plugin",
"trDisplayCategory": "Library",
"icon": "qtcreatorplugin.png",
"iconKind": "Themed",
@@ -134,7 +134,6 @@
"trDisplayName": "Kit Selection",
"trShortTitle": "Kits",
"typeId": "Kits",
- "enabled": "%{JS: !value('IsSubproject')}",
"data": { "projectFilePath": "%{ProjectFile}" }
},
{
@@ -165,6 +164,14 @@
"source": "github_workflows_README.md",
"target": ".github/workflows/README.md"
},
+ {
+ "source": "github_scripts_registerPlugin.js",
+ "target": ".github/scripts/registerPlugin.js"
+ },
+ {
+ "source": "github_scripts_plugin.json",
+ "target": ".github/scripts/plugin.json"
+ },
{
"source": "myplugin.cpp",
"target": "%{SrcFileName}"
diff --git a/share/qtcreator/themes/2024.tokenmapping b/share/qtcreator/themes/2024.tokenmapping
new file mode 100644
index 00000000000..3c7636e3234
--- /dev/null
+++ b/share/qtcreator/themes/2024.tokenmapping
@@ -0,0 +1,116 @@
+[Colors]
+
+BackgroundColorDark=Token_Background_Default
+BackgroundColorDisabled=Token_Background_Subtle
+BackgroundColorHover=Token_Foreground_Subtle
+BackgroundColorNormal=Token_Background_Default
+BackgroundColorSelected=Token_Foreground_Muted
+BadgeLabelBackgroundColorChecked=Token_Background_Default
+BadgeLabelBackgroundColorUnchecked=Token_Foreground_Muted
+BadgeLabelTextColorChecked=Token_Text_Default
+BadgeLabelTextColorUnchecked=Token_Text_Default
+CodeModel_Error_TextMarkColor=error
+CodeModel_Warning_TextMarkColor=warning
+ComboBoxTextColor=Token_Text_Muted
+DockWidgetResizeHandleColor=Token_Stroke_Subtle
+EditorPlaceholderColor=Token_Background_Muted
+FancyTabBarSelectedBackgroundColor=Token_Background_Muted
+FancyTabWidgetDisabledSelectedTextColor=Token_Text_Subtle
+FancyTabWidgetDisabledUnselectedTextColor=Token_Text_Subtle
+FancyTabWidgetEnabledSelectedTextColor=Token_Text_Default
+FancyTabWidgetEnabledUnselectedTextColor=Token_Text_Muted
+FancyToolBarSeparatorColor=Token_Stroke_Subtle
+FancyToolButtonHighlightColor=Token_Accent_Default
+FancyToolButtonHoverColor=Token_Foreground_Subtle
+FancyToolButtonSelectedColor=Token_Foreground_Muted
+IconsBaseActiveColor=Token_Text_Default
+IconsBaseColor=Token_Text_Muted
+IconsBuildHammerHandleColor=Token_Text_Muted
+IconsBuildHammerHeadColor=Token_Text_Muted
+IconsDebugColor=Token_Text_Muted
+IconsDisabledColor=Token_Text_Subtle
+IconsErrorColor=Token_Notification_Danger_Default
+IconsErrorToolBarColor=Token_Notification_Danger_Default
+IconsInfoColor=Token_Notification_Neutral_Default
+IconsInfoToolBarColor=Token_Notification_Neutral_Default
+IconsInterruptColor=Token_Notification_Neutral_Default
+IconsInterruptToolBarColor=Token_Notification_Neutral_Default
+IconsNavigationArrowsColor=Token_Notification_Alert_Default
+IconsRunColor=Token_Accent_Default
+IconsRunToolBarColor=Token_Accent_Default
+IconsStopColor=Token_Notification_Danger_Default
+IconsStopToolBarColor=Token_Notification_Danger_Default
+IconsWarningColor=Token_Notification_Alert_Default
+IconsWarningToolBarColor=Token_Notification_Alert_Default
+InfoBarBackground=Token_Notification_Alert_Subtle
+InfoBarText=Token_Text_Default
+MenuBarItemTextColorDisabled=Token_Text_Subtle
+MenuBarItemTextColorNormal=Token_Text_Default
+MenuItemTextColorDisabled=Token_Text_Subtle
+MenuItemTextColorNormal=Token_Text_Default
+MiniProjectTargetSelectorBackgroundColor=Token_Background_Muted
+MiniProjectTargetSelectorBorderColor=Token_Stroke_Subtle
+MiniProjectTargetSelectorTextColor=Token_Text_Muted
+OutputPaneButtonFlashColor=Token_Notification_Danger_Default
+OutputPaneToggleButtonTextColorChecked=Token_Text_Muted
+OutputPaneToggleButtonTextColorUnchecked=Token_Text_Muted
+PaletteAccent=Token_Accent_Default
+PaletteAccentDisabled=Token_Accent_Subtle
+PaletteAlternateBase=Token_Background_Muted
+PaletteAlternateBaseDisabled=Token_Background_Subtle
+PaletteBase=Token_Background_Default
+PaletteBaseDisabled=Token_Background_Subtle
+PaletteBrightText=Token_Text_Default
+PaletteBrightTextDisabled=Token_Text_Subtle
+PaletteButton=Token_Background_Default
+PaletteButtonDisabled=Token_Background_Subtle
+PaletteButtonText=Token_Text_Default
+PaletteButtonTextDisabled=Token_Text_Subtle
+PaletteDark=Token_Background_Default
+PaletteDarkDisabled=Token_Background_Subtle
+PaletteHighlight=Token_Foreground_Muted
+PaletteHighlightDisabled=Token_Text_Subtle
+PaletteHighlightedText=Token_Text_Default
+PaletteHighlightedTextDisabled=Token_Text_Subtle
+PaletteLight=Token_Foreground_Default
+PaletteLightDisabled=Token_Foreground_Subtle
+PaletteLink=Token_Text_Accent
+PaletteLinkDisabled=Token_Text_Subtle
+PaletteLinkVisited=Token_Text_Accent
+PaletteLinkVisitedDisabled=Token_Text_Subtle
+PaletteMid=Token_Stroke_Muted
+PaletteMidlight=Token_Stroke_Muted
+PalettePlaceholderText=Token_Text_Muted
+PalettePlaceholderTextDisabled=Token_Text_Subtle
+PaletteShadow=Token_Background_Default
+PaletteText=Token_Text_Default
+PaletteTextDisabled=Token_Text_Subtle
+PaletteToolTipBase=Token_Background_Default
+PaletteToolTipBaseDisabled=Token_Background_Subtle
+PaletteToolTipText=Token_Text_Default
+PaletteToolTipTextDisabled=Token_Text_Subtle
+PaletteWindow=Token_Background_Default
+PaletteWindowDisabled=Token_Background_Subtle
+PaletteWindowText=Token_Text_Default
+PaletteWindowTextDisabled=Token_Text_Subtle
+PanelStatusBarBackgroundColor=Token_Background_Muted
+PanelTextColorDark=Token_Text_Default
+PanelTextColorLight=Token_Text_Default
+PanelTextColorMid=Token_Text_Muted
+ProgressBarBackgroundColor=Token_Background_Subtle
+ProgressBarColorError=Token_Notification_Danger_Default
+ProgressBarColorFinished=Token_Notification_Success_Default
+ProgressBarColorNormal=Token_Text_Subtle
+ProgressBarTitleColor=Token_Text_Default
+ProjectExplorer_TaskError_TextMarkColor=Token_Notification_Danger_Default
+ProjectExplorer_TaskWarn_TextMarkColor=Token_Notification_Alert_Default
+SplitterColor=Token_Stroke_Subtle
+TerminalBackground=Token_Background_Default
+TextColorDisabled=Token_Text_Subtle
+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_Selection_ScrollBarColor=Token_Foreground_Subtle
+Timeline_BackgroundColor1=Token_Background_Default
diff --git a/share/qtcreator/themes/dark-2024.creatortheme b/share/qtcreator/themes/dark-2024.creatortheme
new file mode 100644
index 00000000000..459f18e1bdd
--- /dev/null
+++ b/share/qtcreator/themes/dark-2024.creatortheme
@@ -0,0 +1,384 @@
+[General]
+Includes=dark.figmatokens, 2024.tokenmapping
+ThemeName=Dark (2024)
+PreferredStyles=
+DefaultTextEditorColorScheme=dark-2024.xml
+DefaultToolbarStyle=Relaxed
+
+[Palette]
+shadowBackground=ff404142
+text=ffd0d0d0
+textDisabled=60a4a6a8
+textHighlighted=fff0f0f0
+selectedBackground=7a000000
+selectedBackgroundText=ff1d545c
+normalBackground=ff2E2F30
+alternateBackground=ff353637
+error=ffdf4f4f
+warning=ffecbc1c
+splitter=ff06080A
+textColorLinkVisited=ffa57aff
+backgroundColorDisabled=ff444444
+qmlDesignerButtonColor=ff4c4e50
+
+;DS Theme Palette START
+;greyscale
+fullWhite=ffffffff
+lightWhite=ffdfdfdf
+offWhite=ffdcdada
+slateGrey=ff8d8d8d
+smokeGrey=ff8b8b8b
+shadowGrey=ff636363
+duskGrey=ff606060
+raincloudGrey=ff4d4d4d
+graniteGrey=ff343434
+ashGrey=ff434343
+midnightGrey=ff333333
+dawnGrey=ff2a2a2a
+coalGrey=ff282828
+offBlack=ff202020
+nearBlack=ff1b1b1b
+fullBlack=ff000000
+
+;special colors
+idleGreen=ff649a5d
+runningGreen=ff2eff68
+successGreen=ff2bcf32
+idleRed=ff6a4242
+recordingRed=ffcc3c34
+errorRed=ffaf2b2b
+warningOrange=ffca8113
+splitterBlue=ff64daff
+rgbBlue=ff64daff
+highlightBlue=ff57b9fc
+highlightHover=ff74CBFC
+;DS Theme Palette END
+
+[Colors]
+;DS controls theme START
+
+;NEW FOR QtDS 4.0
+DScontrolBackground_toolbarIdle=midnightGrey
+DScontrolBackground_toolbarHover=midnightGrey
+DScontrolBackground_topToolbarHover=ashGrey
+DScontrolBackground_statusbarIdle=offBlack
+DSControlBackground_statusbarHover=dawnGrey
+DScontrolOutline_topToolbarIdle=dawnGrey
+DScontrolOutline_topToolbarHover=raincloudGrey
+DSidleGreen=idleGreen
+DSrunningGreen=runningGreen
+DStoolbarBackground=midnightGrey
+DStoolbarIcon_blocked=shadowGrey
+DSthumbnailBackground_baseState=nearBlack
+DStextColor=lightWhite
+DSstatusbarBackground=offBlack
+DSprimaryButton_hoverHighlight=highlightHover
+DSstateBackgroundColor_hover=ashGrey
+DSstateControlBackgroundColor_globalHover=ashGrey
+DSstateControlBackgroundColor_hover=raincloudGrey
+DSpanelBackground=dawnGrey
+
+;4.3
+DSpopoutBackground=offBlack
+DSpopoutControlBackground_idle=offBlack
+DSpopoutControlBackground_hover=dawnGrey
+DSpopoutControlBackground_globalHover=dawnGrey
+DSpopoutControlBackground_interaction=highlightBlue
+DSpopoutControlBackground_disabled=offBlack
+DSpopoutPopupBackground=nearBlack
+
+DSpopoutControlBorder_idle=midnightGrey
+DSpopoutControlBorder_hover=raincloudGrey
+DSpopoutControlBorder_interaction=highlightBlue
+DSpopoutControlBorder_disabled=offBlack
+
+DSpopoutButtonBackground_idle=offBlack
+DSpopoutButtonBackground_hover=dawnGrey
+DSpopoutButtonBackground_interaction=highlightBlue
+DSpopoutButtonBackground_disabled=offBlack
+
+DSpopoutButtonBorder_idle=slateGrey
+DSpopoutButtonBorder_hover=lightWhite
+DSpopoutButtonBorder_interaction=highlightBlue
+DSpopoutButtonBorder_disabled=offBlack
+
+;4.4
+DSconnectionCodeEditor=midnightGrey
+DSconnectionEditorMicroToolbar=coalGrey
+DSconnectionEditorButtonBackground_hover=midnightGrey
+DSconnectionEditorButtonBorder_hover=duskGrey
+DSpillText=fullWhite
+DSpillTextSelected=fullBlack
+DspillTextEdit=fullWhite
+DSpillDefaultBackgroundIdle=graniteGrey
+DSpillDefaultBackgroundHover=raincloudGrey
+DSpillOperatorBackgroundIdle=ff6b2a7b
+DSpillOperatorBackgroundHover=ff7e478b
+DSpillLiteralBackgroundIdle=ff447953
+DSpillLiteralBackgroundHover=ff61866B
+
+;END NEW FOR QtDS 4
+
+DSwelcomeScreenBackground=ff242424
+DSsubPanelBackground=ff1c1c1c
+DSthumbnailBackground=ff232323
+DSthumbnailLabelBackground=ff2b2a2a
+
+DSgreenLight=ff5cdc68
+DSamberLight=ffffbf00
+DSredLight=ffff0401
+
+DSinteraction=highlightBlue
+DSerrorColor=ffdf3a3a
+DSwarningColor=warning
+DSdisabledColor=ff707070
+
+DSinteractionHover=ff74cbfc
+
+DScontrolBackground=dawnGrey
+DScontrolBackgroundInteraction=ff3d3d3d
+DScontrolBackgroundDisabled=ff2e2f30
+DScontrolBackgroundGlobalHover=ff333333
+DScontrolBackgroundHover=ff333333
+
+DScontrolOutline=nearBlack
+DScontrolOutlineInteraction=highlightBlue
+DScontrolOutlineDisabled=ff707070
+
+DStextColor=ffffffff
+DStextColorDisabled=ff707070
+DStextSelectionColor=ff2aafd3
+DStextSelectedTextColor=ff000000
+
+DSplaceholderTextColor=ffffffff
+DSplaceholderTextColorInteraction=ffababab
+
+DSiconColor=ffffffff
+DSiconColorHover=ffffffff
+DSiconColorInteraction=nearBlack
+DSiconColorDisabled=ffC7C7C7
+DSiconColorSelected=nearBlack
+
+DSlinkIndicatorColor=ff808080
+DSlinkIndicatorColorHover=ffffffff
+DSlinkIndicatorColorInteraction=ff2aafd3
+DSlinkIndicatorColorDisabled=ff707070
+
+DSpopupBackground=offBlack
+DSpopupOverlayColor=99191919
+
+DSsliderActiveTrack=ff7c7b7b
+DSsliderActiveTrackHover=ff000000
+DSsliderActiveTrackFocus=ffaaaaaa
+DSsliderInactiveTrack=ff595959
+DSsliderInactiveTrackHover=ff505050
+DSsliderInactiveTrackFocus=ff606060
+DSsliderHandle=ff1f1f1f
+DSsliderHandleHover=ff606060
+DSsliderHandleFocus=ff0492c9
+DSsliderHandleInteraction=ff2aafd3
+
+DSscrollBarTrack=dawnGrey
+DSscrollBarHandle=offBlack
+DSscrollBarHandle_idle=slateGrey
+
+DSsectionHeadBackground=midnightGrey
+
+DSstateDefaultHighlight=ffffe400
+DSstateSeparatorColor=graniteGrey
+DSstateBackgroundColor=ff383838
+DSstatePreviewOutline=ffaaaaaa
+
+DSstatePanelBackground=ff252525
+DSstateHighlight=ff727272
+
+DSchangedStateText=ff99ccff
+
+DS3DAxisXColor=ffd00000
+DS3DAxisYColor=ff009900
+DS3DAxisZColor=ff5050ff
+
+DSactionBinding=ff2aafd3
+DSactionAlias=fff93a3a
+DSactionKeyframe=ffe0e01b
+DSactionJIT=ff2db543
+
+DStableHeaderBackground=ffff0000
+DStableHeaderText=ff00ff00
+
+DSdockContainerBackground=ff242424
+DSdockContainerSplitter=ff323232
+DSdockAreaBackground=ff262728
+
+DSdockWidgetBackground=ff00ff00
+DSdockWidgetSplitter=fullBlack
+DSdockWidgetTitleBar=dawnGrey
+
+DStitleBarText=ffdadada
+DStitleBarIcon=ffffffff
+DStitleBarButtonHover=40ffffff
+DStitleBarButtonPress=60ffffff
+
+DStabContainerBackground=ff1f1f1f
+DStabSplitter=ff595959
+
+DStabInactiveBackground=ff1f1f1f
+DStabInactiveText=ffdadada
+DStabInactiveIcon=ffffffff
+DStabInactiveButtonHover=ff1f1f1f
+DStabInactiveButtonPress=ff1f1f1f
+
+DStabActiveBackground=raincloudGrey
+DStabActiveText=offWhite
+DStabActiveIcon=offWhite
+DStabActiveButtonHover=ffdadada
+DStabActiveButtonPress=ffdadada
+
+DStabFocusBackground=highlightBlue
+DStabFocusText=ff111111
+DStabFocusIcon=ff000000
+DStabFocusButtonHover=highlightBlue
+DStabFocusButtonPress=highlightBlue
+
+DSnavigatorBranch=ff7c7b7b
+DSnavigatorBranchIndicator=ff7c7b7b
+DSnavigatorItemBackground=dawnGrey
+DSnavigatorItemBackgroundHover=graniteGrey
+DSnavigatorItemBackgroundSelected=midnightGrey
+DSnavigatorText=lightWhite
+DSnavigatorTextHover=ffffffff
+DSnavigatorTextSelected=ff2aafd3
+DSnavigatorIcon=ffffffff
+DSnavigatorIconHover=ffa1a1a1
+DSnavigatorIconSelected=ffffffff
+DSnavigatorAliasIconChecked=ffff0000
+DSnavigatorDropIndicatorBackground=ff2aafd3
+DSnavigatorDropIndicatorOutline=ff2aafd3
+
+DSheaderViewBackground=ff1f1f1f
+DStableViewAlternateBackground=ff00ff00
+
+DStoolTipBackground=ff111111
+DStoolTipOutline=ffdadada
+DStoolTipText=ffdadada
+
+DSUnimportedModuleColor=ffe33c2e
+
+DSBackgroundColorAlternate=alternateBackground
+DSBackgroundColorNormal=normalBackground
+
+DStoolbarBackground=midnightGrey
+
+;DS controls theme END
+
+DetailsWidgetBackgroundColor=18ffffff
+IconsCodeModelKeywordColor=ff777777
+IconsCodeModelClassColor=ffc0b550
+IconsCodeModelStructColor=ff53b053
+IconsCodeModelFunctionColor=ffd34373
+IconsCodeModelVariableColor=ff2bbbcc
+IconsCodeModelEnumColor=ffc0b550
+IconsCodeModelMacroColor=ff476ba0
+IconsCodeModelAttributeColor=ff316511
+IconsCodeModelUniformColor=ff994899
+IconsCodeModelVaryingColor=ffa08833
+IconsCodeModelOverlayBackgroundColor=70000000
+IconsCodeModelOverlayForegroundColor=ffd0d0d0
+TextColorHighlightBackground=7a6f1c
+
+OutputPanes_DebugTextColor=text
+OutputPanes_ErrorMessageTextColor=ffff6c6c
+OutputPanes_MessageOutput=ff008787
+OutputPanes_NormalMessageTextColor=ff008787
+OutputPanes_StdErrTextColor=ffff6666
+OutputPanes_StdOutTextColor=text
+OutputPanes_WarningMessageTextColor=fff3c300
+OutputPanes_TestPassTextColor=ff00b400
+OutputPanes_TestFailTextColor=ffcf4848
+OutputPanes_TestXFailTextColor=ff28dc28
+OutputPanes_TestXPassTextColor=ffdc2828
+OutputPanes_TestSkipTextColor=ff828282
+OutputPanes_TestWarnTextColor=ffc8c800
+OutputPanes_TestFatalTextColor=ffc82828
+OutputPanes_TestDebugTextColor=ff329696
+
+Debugger_LogWindow_LogInput=ff00acac
+Debugger_LogWindow_LogStatus=ff00875a
+Debugger_LogWindow_LogTime=ffbf0303
+
+Debugger_WatchItem_ValueNormal=text
+Debugger_WatchItem_ValueInvalid=textDisabled
+Debugger_WatchItem_ValueChanged=ffff6666
+
+Debugger_Breakpoint_TextMarkColor=ffff4040
+
+Timeline_TextColor=text
+Timeline_BackgroundColor2=ff444444
+Timeline_DividerColor=ff555555
+Timeline_HighlightColor=ff3099dc
+Timeline_PanelBackgroundColor=ff808080
+Timeline_PanelHeaderColor=alternateBackground
+Timeline_HandleColor=alternateBackground
+Timeline_RangeColor=selectedBackground
+
+VcsBase_FileStatusUnknown_TextColor=text
+VcsBase_FileAdded_TextColor=ff00ff00
+VcsBase_FileModified_TextColor=ff8ee0ff
+VcsBase_FileDeleted_TextColor=fffff6c6c
+VcsBase_FileRenamed_TextColor=ffffa500
+VcsBase_FileUnmerged_TextColor=ffff4040
+
+Bookmarks_TextMarkColor=ff8080ff
+
+QmlDesigner_BackgroundColor=qmlDesignerButtonColor
+QmlDesigner_HighlightColor=ff1d545c
+QmlDesigner_FormEditorSelectionColor=ff4ba2ff
+QmlDesigner_FormEditorForegroundColor=ffffffff
+QmlDesigner_BackgroundColorDarkAlternate=dawnGrey
+QmlDesigner_BackgroundColorDarker=ff262728
+QmlDesigner_BorderColor=splitter
+QmlDesigner_ButtonColor=ff595b5c
+QmlDesigner_TabDark=shadowBackground
+QmlDesigner_TabLight=text
+QmlDesigner_FormeditorBackgroundColor=qmlDesignerButtonColor
+QmlDesigner_AlternateBackgroundColor=qmlDesignerButtonColor
+QmlDesigner_ScrollBarHandleColor=ff595b5c
+
+PaletteBrightText=ffff3333
+
+TerminalForeground=ffffff
+TerminalSelection=3fd1d1d1
+TerminalFindMatch=7fffff00
+TerminalAnsi0=151515
+TerminalAnsi1=ac4142
+TerminalAnsi2=7e8e50
+TerminalAnsi3=e5b567
+TerminalAnsi4=6c99bb
+TerminalAnsi5=a320ac
+TerminalAnsi6=7dd6cf
+TerminalAnsi7=d0d0d0
+TerminalAnsi8=505050
+TerminalAnsi9=d05e5b
+TerminalAnsi10=a7b773
+TerminalAnsi11=ffd184
+TerminalAnsi12=94c8ea
+TerminalAnsi13=f257fb
+TerminalAnsi14=a1fcf7
+TerminalAnsi15=ffffff
+
+[Flags]
+ComboBoxDrawTextShadow=false
+DerivePaletteFromTheme=true
+DrawIndicatorBranch=true
+DrawSearchResultWidgetFrame=false
+DrawTargetSelectorBottom=false
+DrawToolBarHighlights=false
+DrawToolBarBorders=true
+FlatToolBars=true
+FlatSideBarIcons=true
+FlatProjectsMode=true
+FlatMenuBar=true
+ToolBarIconShadow=false
+WindowColorAsBase=false
+DarkUserInterface=true
+QDSTheme=false
diff --git a/share/qtcreator/themes/dark.creatortheme b/share/qtcreator/themes/dark.creatortheme
index 7e223b560f5..dd19d6c7980 100644
--- a/share/qtcreator/themes/dark.creatortheme
+++ b/share/qtcreator/themes/dark.creatortheme
@@ -1,6 +1,6 @@
[General]
Includes=dark.figmatokens
-ThemeName=Dark
+ThemeName=Contrast Dark (2016)
PreferredStyles=
DefaultTextEditorColorScheme=dark.xml
EnforceAccentColorOnMacOS=selectedBackground
@@ -19,6 +19,7 @@ warning=ffe0b716
splitterColor=ff313131
textColorLink=ff8ab4f8
textColorLinkVisited=ffc58af9
+toolBarItem=ffdcdcdc
backgroundColorDisabled=ff444444
qmlDesignerButtonColor=ff3c3e40
@@ -274,8 +275,6 @@ DStoolbarBackground=midnightGrey
;DS controls theme END
-
-BackgroundColorAlternate=alternateBackground
BackgroundColorDark=shadowBackground
BackgroundColorHover=hoverBackground
BackgroundColorNormal=normalBackground
@@ -285,23 +284,11 @@ BadgeLabelBackgroundColorChecked=normalBackground
BadgeLabelBackgroundColorUnchecked=selectedBackground
BadgeLabelTextColorChecked=text
BadgeLabelTextColorUnchecked=text
-ComboBoxArrowColor=text
-ComboBoxArrowColorDisabled=text
ComboBoxTextColor=text
-DetailsButtonBackgroundColorHover=hoverBackground
DetailsWidgetBackgroundColor=ff4a4a4a
DockWidgetResizeHandleColor=shadowBackground
-DoubleTabWidget1stSeparatorColor=hoverBackground
-DoubleTabWidget1stTabActiveTextColor=text
-DoubleTabWidget1stTabBackgroundColor=ff4a4a4a
-DoubleTabWidget1stTabInactiveTextColor=textDisabled
-DoubleTabWidget2ndSeparatorColor=hoverBackground
-DoubleTabWidget2ndTabActiveTextColor=text
-DoubleTabWidget2ndTabBackgroundColor=ff434343
-DoubleTabWidget2ndTabInactiveTextColor=textDisabled
EditorPlaceholderColor=normalBackground
FancyToolBarSeparatorColor=43ffffff
-FancyTabBarBackgroundColor=shadowBackground
FancyTabBarSelectedBackgroundColor=88000000
FancyTabWidgetDisabledSelectedTextColor=textDisabled
FancyTabWidgetDisabledUnselectedTextColor=textDisabled
@@ -309,8 +296,8 @@ FancyTabWidgetEnabledSelectedTextColor=text
FancyTabWidgetEnabledUnselectedTextColor=text
FancyToolButtonHoverColor=35ffffff
FancyToolButtonSelectedColor=selectedBackground
-FutureProgressBackgroundColor=shadowBackground
-IconsBaseColor=ffdcdcdc
+FancyToolButtonHighlightColor=toolBarItem
+IconsBaseColor=toolBarItem
IconsDisabledColor=textDisabled
IconsInfoColor=ff3099dc
IconsInfoToolBarColor=ff3099dc
@@ -328,13 +315,6 @@ IconsDebugColor=ffb8c6ff
IconsNavigationArrowsColor=ffebc322
IconsBuildHammerHandleColor=ffdd7710
IconsBuildHammerHeadColor=ff989898
-IconsModeWelcomeActiveColor=ff80c342
-IconsModeEditActiveColor=ff99aaef
-IconsModeDesignActiveColor=ffbb6000
-IconsModeDebugActiveColor=ff99aaef
-IconsModeProjectActiveColor=ff80c342
-IconsModeAnalyzeActiveColor=ff43adee
-IconsModeHelpActiveColor=fff4be04
IconsCodeModelKeywordColor=ffaaaaaa
IconsCodeModelClassColor=ffc0b550
IconsCodeModelStructColor=ff53b053
@@ -346,21 +326,17 @@ IconsCodeModelAttributeColor=ff316511
IconsCodeModelUniformColor=ff994899
IconsCodeModelVaryingColor=ffa08833
IconsCodeModelOverlayBackgroundColor=88000000
-IconsCodeModelOverlayForegroundColor=ffdcdcdc
+IconsCodeModelOverlayForegroundColor=toolBarItem
InfoBarBackground=ff505000
InfoBarText=text
-MenuBarEmptyAreaBackgroundColor=shadowBackground
-MenuBarItemBackgroundColor=shadowBackground
MenuBarItemTextColorDisabled=textDisabled
MenuBarItemTextColorNormal=text
MenuItemTextColorDisabled=textDisabled
MenuItemTextColorNormal=text
MiniProjectTargetSelectorBackgroundColor=normalBackground
MiniProjectTargetSelectorBorderColor=shadowBackground
-MiniProjectTargetSelectorSummaryBackgroundColor=shadowBackground
MiniProjectTargetSelectorTextColor=text
PanelStatusBarBackgroundColor=shadowBackground
-PanelsWidgetSeparatorLineColor=000000
PanelTextColorDark=text
PanelTextColorMid=ffa0a0a0
PanelTextColorLight=text
@@ -374,12 +350,7 @@ TextColorDisabled=textDisabled
TextColorError=ffff4040
TextColorHighlightBackground=7a6f1c
TextColorLink=textColorLink
-TextColorLinkVisited=textColorLinkVisited
TextColorNormal=text
-ToggleButtonBackgroundColor=shadowBackground
-ToolBarBackgroundColor=shadowBackground
-TreeViewArrowColorNormal=hoverBackground
-TreeViewArrowColorSelected=text
OutputPanes_DebugTextColor=text
OutputPanes_ErrorMessageTextColor=ffff6c6c
diff --git a/share/qtcreator/themes/dark.figmatokens b/share/qtcreator/themes/dark.figmatokens
index d65ae21fa3f..0c63a7755dd 100644
--- a/share/qtcreator/themes/dark.figmatokens
+++ b/share/qtcreator/themes/dark.figmatokens
@@ -2,42 +2,47 @@
[Colors]
-Token_Basic_Black=ff131313
-Token_Basic_White=fff8f8f8
+Token_Basic_Black=ff181818
+Token_Basic_White=ffFCFCFC
-Token_Accent_Default=ff1F9B5D
-Token_Accent_Muted=ff228C57
-Token_Accent_Subtle=ff1F7A4D
+Token_Accent_Default=ff12A75D
+Token_Accent_Muted=ff12834B
+Token_Accent_Subtle=ff14673E
Token_Background_Default=ff1f1f1f
Token_Background_Muted=ff262626
-Token_Background_Subtle=ff2e2e2e
+Token_Background_Subtle=ff2D2D2D
-Token_Foreground_Default=ff474747
-Token_Foreground_Muted=ff353535
-Token_Foreground_Subtle=ff2A2A2A
+Token_Foreground_Default=ff4A4A4A
+Token_Foreground_Muted=ff3F3F3F
+Token_Foreground_Subtle=ff353535
-Token_Text_Default=ffF8F8F8
+Token_Text_Default=ffF2F2F2
Token_Text_Muted=ffAEAEAE
Token_Text_Subtle=ff595959
+Token_Text_Accent=ff1EC974
-; Token_Text_Accent value from Figma is still too dark. Therefore, it is modified, here.
-; Text (consisting of thin lines) needs to be substantially brighter than accent colors used for
-; larger-area elements like the filled button.
+Token_Stroke_Strong=ffE3E3E3
+Token_Stroke_Muted=ff909090
+Token_Stroke_Subtle=ff4A4A4A
-; Token_Text_Accent=ff23B26A
-Token_Text_Accent=ff30C06A
+Token_Notification_Alert_Default=ffEFAD4C
+Token_Notification_Alert_Muted=ffBC7A19
+Token_Notification_Alert_Subtle=ff31240F
-Token_Stroke_Strong=ffeeeeee
-Token_Stroke_Muted=ff727272
-Token_Stroke_Subtle=ff3a3a3a
+Token_Notification_Neutral_Default=ff8671EC
+Token_Notification_Neutral_Muted=ff361EAB
+Token_Notification_Neutral_Subtle=ff1E1450
-Token_Notification_Alert=ffc98014
-Token_Notification_Success=ff1f9b5d
-Token_Notification_Neutral=ff016876
-Token_Notification_Danger=ffb22245
+Token_Notification_Danger_Default=ffE34269
+Token_Notification_Danger_Muted=ffB00F36
+Token_Notification_Danger_Subtle=ff33161C
-Token_Gradient01_Start=ff016876
-Token_Gradient01_End=ff1F9B5D
-Token_Gradient02_Start=ff3A3A3A
-Token_Gradient02_End=ff838383
+Token_Notification_Success_Default=ff1EC974
+Token_Notification_Success_Muted=ff12834B
+Token_Notification_Success_Subtle=ff092C1B
+
+Token_Gradient01_Start=ff00414A
+Token_Gradient01_End=ff12A75D
+Token_Gradient02_Start=ff4A4A4A
+Token_Gradient02_End=ff909090
diff --git a/share/qtcreator/themes/default.creatortheme b/share/qtcreator/themes/default.creatortheme
index c39d42a370b..3f37b73d970 100644
--- a/share/qtcreator/themes/default.creatortheme
+++ b/share/qtcreator/themes/default.creatortheme
@@ -1,12 +1,13 @@
[General]
Includes=light.figmatokens, light-palette.inc
-ThemeName=Classic
+ThemeName=Classic (2009)
PreferredStyles=
[Palette]
brightText=ffffffff
darkText=ff000000
textDisabled=88a0a0a0
+toolBarItem=ffdcdcdc
error=ffdf4f4f
warning=ffecbc1c
shadowBackground=ff232323
@@ -267,7 +268,6 @@ DSBackgroundColorNormal=ffd8d8d8
;DS controls theme END
-BackgroundColorAlternate=ff3d3d3d
BackgroundColorDark=shadowBackground
BackgroundColorHover=ff515151
BackgroundColorNormal=ffffffff
@@ -277,23 +277,11 @@ BadgeLabelBackgroundColorChecked=ffe0e0e0
BadgeLabelBackgroundColorUnchecked=ff808080
BadgeLabelTextColorChecked=ff606060
BadgeLabelTextColorUnchecked=ffffffff
-ComboBoxArrowColor=ffb8b5b2
-ComboBoxArrowColorDisabled=ffdcdcdc
ComboBoxTextColor=ffffffff
-DetailsButtonBackgroundColorHover=b4ffffff
DetailsWidgetBackgroundColor=28ffffff
DockWidgetResizeHandleColor=ff000000
-DoubleTabWidget1stSeparatorColor=ffff0000
-DoubleTabWidget1stTabActiveTextColor=ff000000
-DoubleTabWidget1stTabBackgroundColor=ffff0000
-DoubleTabWidget1stTabInactiveTextColor=ffffffff
-DoubleTabWidget2ndSeparatorColor=ffff0000
-DoubleTabWidget2ndTabActiveTextColor=ffffffff
-DoubleTabWidget2ndTabBackgroundColor=ffff0000
-DoubleTabWidget2ndTabInactiveTextColor=ff000000
EditorPlaceholderColor=ffe0dcd8
FancyToolBarSeparatorColor=60ffffff
-FancyTabBarBackgroundColor=ffff0000
FancyTabBarSelectedBackgroundColor=ffff0000
FancyTabWidgetDisabledSelectedTextColor=textDisabled
FancyTabWidgetDisabledUnselectedTextColor=textDisabled
@@ -301,8 +289,8 @@ FancyTabWidgetEnabledSelectedTextColor=ff3c3c3c
FancyTabWidgetEnabledUnselectedTextColor=ffffffff
FancyToolButtonHoverColor=28ffffff
FancyToolButtonSelectedColor=32000000
-FutureProgressBackgroundColor=ffff0000
-IconsBaseColor=ffdcdcdc
+FancyToolButtonHighlightColor=toolBarItem
+IconsBaseColor=toolBarItem
IconsDisabledColor=textDisabled
IconsInfoColor=ff3099dc
IconsInfoToolBarColor=ff71b2db
@@ -316,17 +304,10 @@ IconsStopColor=ffee6969
IconsStopToolBarColor=ffff8c8c
IconsInterruptColor=ff587ff7
IconsInterruptToolBarColor=ff8f9dda
-IconsDebugColor=ffdcdcdc
+IconsDebugColor=toolBarItem
IconsNavigationArrowsColor=ffebc322
IconsBuildHammerHandleColor=ffdd7710
IconsBuildHammerHeadColor=ff989898
-IconsModeWelcomeActiveColor=ffffffff
-IconsModeEditActiveColor=ffffffff
-IconsModeDesignActiveColor=ffffffff
-IconsModeDebugActiveColor=ffffffff
-IconsModeProjectActiveColor=ffffffff
-IconsModeAnalyzeActiveColor=ffffffff
-IconsModeHelpActiveColor=ffffffff
IconsCodeModelKeywordColor=ff777777
IconsCodeModelClassColor=ffc0b550
IconsCodeModelStructColor=ff53b053
@@ -341,18 +322,14 @@ IconsCodeModelOverlayBackgroundColor=70ffffff
IconsCodeModelOverlayForegroundColor=ff232425
InfoBarBackground=ffffffe1
InfoBarText=ff000000
-MenuBarEmptyAreaBackgroundColor=ffff0000
-MenuBarItemBackgroundColor=ffff0000
MenuBarItemTextColorDisabled=ffa0a0a4
MenuBarItemTextColorNormal=ff000000
MenuItemTextColorDisabled=style
MenuItemTextColorNormal=style
MiniProjectTargetSelectorBackgroundColor=ffa0a0a0
MiniProjectTargetSelectorBorderColor=ff000000
-MiniProjectTargetSelectorSummaryBackgroundColor=ff464646
MiniProjectTargetSelectorTextColor=a0ffffff
PanelStatusBarBackgroundColor=ff626262
-PanelsWidgetSeparatorLineColor=ffbfbcb8
PanelTextColorDark=darkText
PanelTextColorMid=ff909090
PanelTextColorLight=brightText
@@ -366,12 +343,7 @@ TextColorDisabled=55000000
TextColorError=ffff0000
TextColorHighlightBackground=ffef0b
TextColorLink=ff0057ae
-TextColorLinkVisited=ff644a9b
TextColorNormal=ff000000
-ToggleButtonBackgroundColor=ffff0000
-ToolBarBackgroundColor=ffff0000
-TreeViewArrowColorNormal=ffff0000
-TreeViewArrowColorSelected=ffff0000
OutputPanes_DebugTextColor=ffaa00aa
OutputPanes_ErrorMessageTextColor=ffaa0000
diff --git a/share/qtcreator/themes/design-light.creatortheme b/share/qtcreator/themes/design-light.creatortheme
index 4f0e274e2de..03199bd8711 100644
--- a/share/qtcreator/themes/design-light.creatortheme
+++ b/share/qtcreator/themes/design-light.creatortheme
@@ -279,7 +279,6 @@ DSBackgroundColorNormal=ffd8d8d8
;DS controls theme END
-BackgroundColorAlternate=alternateBackground
BackgroundColorDark=shadowBackground
BackgroundColorHover=hoverBackground
BackgroundColorNormal=normalBackground
@@ -289,23 +288,11 @@ BadgeLabelBackgroundColorChecked=ffe0e0e0
BadgeLabelBackgroundColorUnchecked=ff808080
BadgeLabelTextColorChecked=ff606060
BadgeLabelTextColorUnchecked=ffffffff
-ComboBoxArrowColor=toolBarItem
-ComboBoxArrowColorDisabled=toolBarItemDisabled
ComboBoxTextColor=fancyBarsNormalTextColor
-DetailsButtonBackgroundColorHover=b4ffffff
DetailsWidgetBackgroundColor=28ffffff
DockWidgetResizeHandleColor=splitter
-DoubleTabWidget1stSeparatorColor=ffff0000
-DoubleTabWidget1stTabActiveTextColor=ff000000
-DoubleTabWidget1stTabBackgroundColor=ffff0000
-DoubleTabWidget1stTabInactiveTextColor=ff555555
-DoubleTabWidget2ndSeparatorColor=ffff0000
-DoubleTabWidget2ndTabActiveTextColor=ffffffff
-DoubleTabWidget2ndTabBackgroundColor=ffff0000
-DoubleTabWidget2ndTabInactiveTextColor=ff000000
EditorPlaceholderColor=fff4f4f4
FancyToolBarSeparatorColor=toolBarItemDisabled
-FancyTabBarBackgroundColor=shadowBackground
FancyTabBarSelectedBackgroundColor=selectedBackground
FancyTabWidgetDisabledSelectedTextColor=toolBarItemDisabled
FancyTabWidgetDisabledUnselectedTextColor=toolBarItemDisabled
@@ -313,7 +300,7 @@ FancyTabWidgetEnabledSelectedTextColor=fancyBarsBoldTextColor
FancyTabWidgetEnabledUnselectedTextColor=fancyBarsBoldTextColor
FancyToolButtonHoverColor=hoverBackground
FancyToolButtonSelectedColor=selectedBackground
-FutureProgressBackgroundColor=shadowBackground
+FancyToolButtonHighlightColor=toolBarItem
IconsBaseColor=toolBarItem
IconsDisabledColor=toolBarItemDisabled
IconsInfoColor=ff3099dc
@@ -332,13 +319,6 @@ IconsDebugColor=toolBarItem
IconsNavigationArrowsColor=ff3dabe6
IconsBuildHammerHandleColor=ffc26b14
IconsBuildHammerHeadColor=ff868687
-IconsModeWelcomeActiveColor=ff5caa15
-IconsModeEditActiveColor=ff6a6add
-IconsModeDesignActiveColor=ffbb6000
-IconsModeDebugActiveColor=ff6a6add
-IconsModeProjectActiveColor=ff5caa15
-IconsModeAnalyzeActiveColor=ff43adee
-IconsModeHelpActiveColor=fffaa838
IconsCodeModelKeywordColor=ff777777
IconsCodeModelClassColor=ffc0b550
IconsCodeModelStructColor=ff53b053
@@ -353,18 +333,14 @@ IconsCodeModelOverlayBackgroundColor=70ffffff
IconsCodeModelOverlayForegroundColor=ff232425
InfoBarBackground=ffffffe1
InfoBarText=text
-MenuBarEmptyAreaBackgroundColor=shadowBackground
-MenuBarItemBackgroundColor=shadowBackground
MenuBarItemTextColorDisabled=textDisabled
MenuBarItemTextColorNormal=text
MenuItemTextColorDisabled=textDisabled
MenuItemTextColorNormal=text
MiniProjectTargetSelectorBackgroundColor=shadowBackground
MiniProjectTargetSelectorBorderColor=shadowBackground
-MiniProjectTargetSelectorSummaryBackgroundColor=shadowBackground
MiniProjectTargetSelectorTextColor=fancyBarsNormalTextColor
PanelStatusBarBackgroundColor=shadowBackground
-PanelsWidgetSeparatorLineColor=000000
PanelTextColorDark=text
PanelTextColorMid=ff666666
PanelTextColorLight=fancyBarsNormalTextColor
@@ -378,12 +354,7 @@ TextColorDisabled=textDisabled
TextColorError=ffff4040
TextColorHighlightBackground=ffef0b
TextColorLink=ff007af4
-TextColorLinkVisited=ffa57aff
TextColorNormal=text
-ToggleButtonBackgroundColor=shadowBackground
-ToolBarBackgroundColor=shadowBackground
-TreeViewArrowColorNormal=hoverBackground
-TreeViewArrowColorSelected=text
OutputPanes_DebugTextColor=text
OutputPanes_ErrorMessageTextColor=ffaa0000
diff --git a/share/qtcreator/themes/design.creatortheme b/share/qtcreator/themes/design.creatortheme
index db9bed53a40..54de6f7612f 100644
--- a/share/qtcreator/themes/design.creatortheme
+++ b/share/qtcreator/themes/design.creatortheme
@@ -283,7 +283,6 @@ DSBackgroundColorNormal=normalBackground
;DS controls theme END
-BackgroundColorAlternate=alternateBackground
BackgroundColorDark=shadowBackground
BackgroundColorHover=hoverBackground
BackgroundColorNormal=normalBackground
@@ -293,23 +292,11 @@ BadgeLabelBackgroundColorChecked=ffe0e0e0
BadgeLabelBackgroundColorUnchecked=ff808080
BadgeLabelTextColorChecked=ff606060
BadgeLabelTextColorUnchecked=ffffffff
-ComboBoxArrowColor=toolBarItem
-ComboBoxArrowColorDisabled=toolBarItemDisabled
ComboBoxTextColor=fancyBarsNormalTextColor
-DetailsButtonBackgroundColorHover=22ffffff
DetailsWidgetBackgroundColor=18ffffff
DockWidgetResizeHandleColor=splitter
-DoubleTabWidget1stSeparatorColor=splitter
-DoubleTabWidget1stTabActiveTextColor=text
-DoubleTabWidget1stTabBackgroundColor=ff505050
-DoubleTabWidget1stTabInactiveTextColor=text
-DoubleTabWidget2ndSeparatorColor=toolBarItemDisabled
-DoubleTabWidget2ndTabActiveTextColor=text
-DoubleTabWidget2ndTabBackgroundColor=selectedBackground
-DoubleTabWidget2ndTabInactiveTextColor=text
EditorPlaceholderColor=normalBackground
FancyToolBarSeparatorColor=toolBarItemDisabled
-FancyTabBarBackgroundColor=shadowBackground
FancyTabBarSelectedBackgroundColor=ff000000
FancyTabWidgetDisabledSelectedTextColor=toolBarItemDisabled
FancyTabWidgetDisabledUnselectedTextColor=toolBarItemDisabled
@@ -317,7 +304,7 @@ FancyTabWidgetEnabledSelectedTextColor=fancyBarsBoldTextColor
FancyTabWidgetEnabledUnselectedTextColor=fancyBarsBoldTextColor
FancyToolButtonHoverColor=hoverBackground
FancyToolButtonSelectedColor=selectedBackground
-FutureProgressBackgroundColor=shadowBackground
+FancyToolButtonHighlightColor=toolBarItem
IconsBaseColor=toolBarItem
IconsDisabledColor=toolBarItemDisabled
IconsInfoColor=ff3099dc
@@ -336,13 +323,6 @@ IconsDebugColor=toolBarItem
IconsNavigationArrowsColor=ffebc322
IconsBuildHammerHandleColor=ffb06112
IconsBuildHammerHeadColor=ff828384
-IconsModeWelcomeActiveColor=ff1f6c97
-IconsModeEditActiveColor=ff99aaef
-IconsModeDesignActiveColor=ffbb6000
-IconsModeDebugActiveColor=ff99aaef
-IconsModeProjectActiveColor=ff1f6c97
-IconsModeAnalyzeActiveColor=ff43adee
-IconsModeHelpActiveColor=fff4be04
IconsCodeModelKeywordColor=ff777777
IconsCodeModelClassColor=ffc0b550
IconsCodeModelStructColor=ff53b053
@@ -357,18 +337,14 @@ IconsCodeModelOverlayBackgroundColor=70000000
IconsCodeModelOverlayForegroundColor=ffd0d0d0
InfoBarBackground=ff505000
InfoBarText=text
-MenuBarEmptyAreaBackgroundColor=shadowBackground
-MenuBarItemBackgroundColor=shadowBackground
MenuBarItemTextColorDisabled=textDisabled
MenuBarItemTextColorNormal=text
MenuItemTextColorDisabled=textDisabled
MenuItemTextColorNormal=text
MiniProjectTargetSelectorBackgroundColor=shadowBackground
MiniProjectTargetSelectorBorderColor=shadowBackground
-MiniProjectTargetSelectorSummaryBackgroundColor=shadowBackground
MiniProjectTargetSelectorTextColor=fancyBarsNormalTextColor
PanelStatusBarBackgroundColor=shadowBackground
-PanelsWidgetSeparatorLineColor=000000
PanelTextColorDark=text
PanelTextColorMid=ffa0a0a0
PanelTextColorLight=text
@@ -382,12 +358,7 @@ TextColorDisabled=textDisabled
TextColorError=ffff4040
TextColorHighlightBackground=8a7f2c
TextColorLink=textColorLink
-TextColorLinkVisited=textColorLinkVisited
TextColorNormal=text
-ToggleButtonBackgroundColor=shadowBackground
-ToolBarBackgroundColor=shadowBackground
-TreeViewArrowColorNormal=hoverBackground
-TreeViewArrowColorSelected=text
OutputPanes_DebugTextColor=text
OutputPanes_ErrorMessageTextColor=ffff6c6c
diff --git a/share/qtcreator/themes/flat-dark.creatortheme b/share/qtcreator/themes/flat-dark.creatortheme
index 1e5cadbd824..ca61ee9840b 100644
--- a/share/qtcreator/themes/flat-dark.creatortheme
+++ b/share/qtcreator/themes/flat-dark.creatortheme
@@ -1,6 +1,6 @@
[General]
Includes=dark.figmatokens
-ThemeName=Flat Dark
+ThemeName=Dark (2016)
PreferredStyles=
DefaultTextEditorColorScheme=creator-dark.xml
@@ -279,7 +279,6 @@ DStoolbarBackground=midnightGrey
;DS controls theme END
-BackgroundColorAlternate=alternateBackground
BackgroundColorDark=shadowBackground
BackgroundColorHover=hoverBackground
BackgroundColorNormal=normalBackground
@@ -289,23 +288,11 @@ BadgeLabelBackgroundColorChecked=ffe0e0e0
BadgeLabelBackgroundColorUnchecked=ff808080
BadgeLabelTextColorChecked=ff606060
BadgeLabelTextColorUnchecked=ffffffff
-ComboBoxArrowColor=toolBarItem
-ComboBoxArrowColorDisabled=toolBarItemDisabled
ComboBoxTextColor=fancyBarsNormalTextColor
-DetailsButtonBackgroundColorHover=22ffffff
DetailsWidgetBackgroundColor=18ffffff
DockWidgetResizeHandleColor=splitter
-DoubleTabWidget1stSeparatorColor=splitter
-DoubleTabWidget1stTabActiveTextColor=text
-DoubleTabWidget1stTabBackgroundColor=ff505050
-DoubleTabWidget1stTabInactiveTextColor=text
-DoubleTabWidget2ndSeparatorColor=toolBarItemDisabled
-DoubleTabWidget2ndTabActiveTextColor=text
-DoubleTabWidget2ndTabBackgroundColor=selectedBackground
-DoubleTabWidget2ndTabInactiveTextColor=text
EditorPlaceholderColor=normalBackground
FancyToolBarSeparatorColor=toolBarItemDisabled
-FancyTabBarBackgroundColor=shadowBackground
FancyTabBarSelectedBackgroundColor=selectedBackground
FancyTabWidgetDisabledSelectedTextColor=toolBarItemDisabled
FancyTabWidgetDisabledUnselectedTextColor=toolBarItemDisabled
@@ -313,7 +300,7 @@ FancyTabWidgetEnabledSelectedTextColor=fancyBarsBoldTextColor
FancyTabWidgetEnabledUnselectedTextColor=fancyBarsBoldTextColor
FancyToolButtonHoverColor=hoverBackground
FancyToolButtonSelectedColor=selectedBackground
-FutureProgressBackgroundColor=shadowBackground
+FancyToolButtonHighlightColor=toolBarItem
IconsBaseColor=toolBarItem
IconsDisabledColor=toolBarItemDisabled
IconsInfoColor=ff3099dc
@@ -332,13 +319,6 @@ IconsDebugColor=toolBarItem
IconsNavigationArrowsColor=ffebc322
IconsBuildHammerHandleColor=ffb06112
IconsBuildHammerHeadColor=ff828384
-IconsModeWelcomeActiveColor=ff80c342
-IconsModeEditActiveColor=ff99aaef
-IconsModeDesignActiveColor=ffbb6000
-IconsModeDebugActiveColor=ff99aaef
-IconsModeProjectActiveColor=ff80c342
-IconsModeAnalyzeActiveColor=ff43adee
-IconsModeHelpActiveColor=fff4be04
IconsCodeModelKeywordColor=ff777777
IconsCodeModelClassColor=ffc0b550
IconsCodeModelStructColor=ff53b053
@@ -353,18 +333,14 @@ IconsCodeModelOverlayBackgroundColor=70000000
IconsCodeModelOverlayForegroundColor=ffd0d0d0
InfoBarBackground=ff505000
InfoBarText=text
-MenuBarEmptyAreaBackgroundColor=shadowBackground
-MenuBarItemBackgroundColor=shadowBackground
MenuBarItemTextColorDisabled=textDisabled
MenuBarItemTextColorNormal=text
MenuItemTextColorDisabled=textDisabled
MenuItemTextColorNormal=text
MiniProjectTargetSelectorBackgroundColor=shadowBackground
MiniProjectTargetSelectorBorderColor=shadowBackground
-MiniProjectTargetSelectorSummaryBackgroundColor=shadowBackground
MiniProjectTargetSelectorTextColor=fancyBarsNormalTextColor
PanelStatusBarBackgroundColor=shadowBackground
-PanelsWidgetSeparatorLineColor=000000
PanelTextColorDark=text
PanelTextColorMid=ffa0a0a0
PanelTextColorLight=text
@@ -378,12 +354,7 @@ TextColorDisabled=textDisabled
TextColorError=ffff4040
TextColorHighlightBackground=7a6f1c
TextColorLink=textColorLink
-TextColorLinkVisited=textColorLinkVisited
TextColorNormal=text
-ToggleButtonBackgroundColor=shadowBackground
-ToolBarBackgroundColor=shadowBackground
-TreeViewArrowColorNormal=hoverBackground
-TreeViewArrowColorSelected=text
OutputPanes_DebugTextColor=text
OutputPanes_ErrorMessageTextColor=ffff6c6c
diff --git a/share/qtcreator/themes/flat-light.creatortheme b/share/qtcreator/themes/flat-light.creatortheme
index 253aa29f4e1..3c46c178426 100644
--- a/share/qtcreator/themes/flat-light.creatortheme
+++ b/share/qtcreator/themes/flat-light.creatortheme
@@ -1,6 +1,6 @@
[General]
Includes=light.figmatokens, light-palette.inc
-ThemeName=Flat Light
+ThemeName=Light (2016)
PreferredStyles=
[Palette]
@@ -279,7 +279,6 @@ DSBackgroundColorNormal=ffd8d8d8
;DS controls theme END
-BackgroundColorAlternate=alternateBackground
BackgroundColorDark=shadowBackground
BackgroundColorHover=hoverBackground
BackgroundColorNormal=normalBackground
@@ -289,23 +288,11 @@ BadgeLabelBackgroundColorChecked=ffe0e0e0
BadgeLabelBackgroundColorUnchecked=ff808080
BadgeLabelTextColorChecked=ff606060
BadgeLabelTextColorUnchecked=ffffffff
-ComboBoxArrowColor=toolBarItem
-ComboBoxArrowColorDisabled=toolBarItemDisabled
ComboBoxTextColor=fancyBarsNormalTextColor
-DetailsButtonBackgroundColorHover=b4ffffff
DetailsWidgetBackgroundColor=28ffffff
DockWidgetResizeHandleColor=splitter
-DoubleTabWidget1stSeparatorColor=ffff0000
-DoubleTabWidget1stTabActiveTextColor=ff000000
-DoubleTabWidget1stTabBackgroundColor=ffff0000
-DoubleTabWidget1stTabInactiveTextColor=ff555555
-DoubleTabWidget2ndSeparatorColor=ffff0000
-DoubleTabWidget2ndTabActiveTextColor=ffffffff
-DoubleTabWidget2ndTabBackgroundColor=ffff0000
-DoubleTabWidget2ndTabInactiveTextColor=ff000000
EditorPlaceholderColor=fff4f4f4
FancyToolBarSeparatorColor=toolBarItemDisabled
-FancyTabBarBackgroundColor=shadowBackground
FancyTabBarSelectedBackgroundColor=selectedBackground
FancyTabWidgetDisabledSelectedTextColor=toolBarItemDisabled
FancyTabWidgetDisabledUnselectedTextColor=toolBarItemDisabled
@@ -313,7 +300,7 @@ FancyTabWidgetEnabledSelectedTextColor=fancyBarsBoldTextColor
FancyTabWidgetEnabledUnselectedTextColor=fancyBarsBoldTextColor
FancyToolButtonHoverColor=hoverBackground
FancyToolButtonSelectedColor=selectedBackground
-FutureProgressBackgroundColor=shadowBackground
+FancyToolButtonHighlightColor=toolBarItem
IconsBaseColor=toolBarItem
IconsDisabledColor=toolBarItemDisabled
IconsInfoColor=ff3099dc
@@ -332,13 +319,6 @@ IconsDebugColor=toolBarItem
IconsNavigationArrowsColor=ff3dabe6
IconsBuildHammerHandleColor=ffc26b14
IconsBuildHammerHeadColor=ff868687
-IconsModeWelcomeActiveColor=ff5caa15
-IconsModeEditActiveColor=ff6a6add
-IconsModeDesignActiveColor=ffbb6000
-IconsModeDebugActiveColor=ff6a6add
-IconsModeProjectActiveColor=ff5caa15
-IconsModeAnalyzeActiveColor=ff43adee
-IconsModeHelpActiveColor=fffaa838
IconsCodeModelKeywordColor=ff777777
IconsCodeModelClassColor=ffc0b550
IconsCodeModelStructColor=ff53b053
@@ -353,18 +333,14 @@ IconsCodeModelOverlayBackgroundColor=70ffffff
IconsCodeModelOverlayForegroundColor=ff232425
InfoBarBackground=ffffffe1
InfoBarText=text
-MenuBarEmptyAreaBackgroundColor=shadowBackground
-MenuBarItemBackgroundColor=shadowBackground
MenuBarItemTextColorDisabled=textDisabled
MenuBarItemTextColorNormal=text
MenuItemTextColorDisabled=textDisabled
MenuItemTextColorNormal=text
MiniProjectTargetSelectorBackgroundColor=shadowBackground
MiniProjectTargetSelectorBorderColor=shadowBackground
-MiniProjectTargetSelectorSummaryBackgroundColor=shadowBackground
MiniProjectTargetSelectorTextColor=fancyBarsNormalTextColor
PanelStatusBarBackgroundColor=shadowBackground
-PanelsWidgetSeparatorLineColor=000000
PanelTextColorDark=text
PanelTextColorMid=ff666666
PanelTextColorLight=fancyBarsNormalTextColor
@@ -378,12 +354,7 @@ TextColorDisabled=textDisabled
TextColorError=ffff4040
TextColorHighlightBackground=ffef0b
TextColorLink=ff007af4
-TextColorLinkVisited=ffa57aff
TextColorNormal=text
-ToggleButtonBackgroundColor=shadowBackground
-ToolBarBackgroundColor=shadowBackground
-TreeViewArrowColorNormal=hoverBackground
-TreeViewArrowColorSelected=text
OutputPanes_DebugTextColor=text
OutputPanes_ErrorMessageTextColor=ffaa0000
diff --git a/share/qtcreator/themes/flat.creatortheme b/share/qtcreator/themes/flat.creatortheme
index 5998ff0fd5d..1eb28fc2350 100644
--- a/share/qtcreator/themes/flat.creatortheme
+++ b/share/qtcreator/themes/flat.creatortheme
@@ -1,6 +1,6 @@
[General]
Includes=light.figmatokens, light-palette.inc
-ThemeName=Flat
+ThemeName=Hybrid (2016)
PreferredStyles=
[Palette]
@@ -276,8 +276,6 @@ DStoolbarBackground=midnightGrey
;DS controls theme END
-
-BackgroundColorAlternate=alternateBackground
BackgroundColorDark=shadowBackground
BackgroundColorHover=hoverBackground
BackgroundColorNormal=normalBackground
@@ -287,23 +285,11 @@ BadgeLabelBackgroundColorChecked=ffe0e0e0
BadgeLabelBackgroundColorUnchecked=ff808080
BadgeLabelTextColorChecked=ff606060
BadgeLabelTextColorUnchecked=ffffffff
-ComboBoxArrowColor=toolBarItem
-ComboBoxArrowColorDisabled=toolBarItemDisabled
ComboBoxTextColor=fancyBarsNormalTextColor
-DetailsButtonBackgroundColorHover=b4ffffff
DetailsWidgetBackgroundColor=28ffffff
DockWidgetResizeHandleColor=splitter
-DoubleTabWidget1stSeparatorColor=ffff0000
-DoubleTabWidget1stTabActiveTextColor=ff000000
-DoubleTabWidget1stTabBackgroundColor=ffff0000
-DoubleTabWidget1stTabInactiveTextColor=ffffffff
-DoubleTabWidget2ndSeparatorColor=ffff0000
-DoubleTabWidget2ndTabActiveTextColor=ffffffff
-DoubleTabWidget2ndTabBackgroundColor=ffff0000
-DoubleTabWidget2ndTabInactiveTextColor=ff000000
EditorPlaceholderColor=ffdddddd
FancyToolBarSeparatorColor=toolBarItemDisabled
-FancyTabBarBackgroundColor=shadowBackground
FancyTabBarSelectedBackgroundColor=selectedBackground
FancyTabWidgetDisabledSelectedTextColor=toolBarItemDisabled
FancyTabWidgetDisabledUnselectedTextColor=toolBarItemDisabled
@@ -311,7 +297,7 @@ FancyTabWidgetEnabledSelectedTextColor=fancyBarsBoldTextColor
FancyTabWidgetEnabledUnselectedTextColor=fancyBarsBoldTextColor
FancyToolButtonHoverColor=hoverBackground
FancyToolButtonSelectedColor=selectedBackground
-FutureProgressBackgroundColor=shadowBackground
+FancyToolButtonHighlightColor=toolBarItem
IconsBaseColor=toolBarItem
IconsDisabledColor=toolBarItemDisabled
IconsInfoColor=ff3099dc
@@ -330,13 +316,6 @@ IconsDebugColor=toolBarItem
IconsNavigationArrowsColor=ffebc322
IconsBuildHammerHandleColor=ffc26b14
IconsBuildHammerHeadColor=ff868687
-IconsModeWelcomeActiveColor=ff80c342
-IconsModeEditActiveColor=ff99aaef
-IconsModeDesignActiveColor=ffbb6000
-IconsModeDebugActiveColor=ff99aaef
-IconsModeProjectActiveColor=ff80c342
-IconsModeAnalyzeActiveColor=ff43adee
-IconsModeHelpActiveColor=fff4be04
IconsCodeModelKeywordColor=ff777777
IconsCodeModelClassColor=ffc0b550
IconsCodeModelStructColor=ff53b053
@@ -351,18 +330,14 @@ IconsCodeModelOverlayBackgroundColor=70ffffff
IconsCodeModelOverlayForegroundColor=ff232425
InfoBarBackground=ffffffe1
InfoBarText=text
-MenuBarEmptyAreaBackgroundColor=shadowBackground
-MenuBarItemBackgroundColor=shadowBackground
MenuBarItemTextColorDisabled=textDisabled
MenuBarItemTextColorNormal=text
MenuItemTextColorDisabled=textDisabled
MenuItemTextColorNormal=text
MiniProjectTargetSelectorBackgroundColor=shadowBackground
MiniProjectTargetSelectorBorderColor=shadowBackground
-MiniProjectTargetSelectorSummaryBackgroundColor=shadowBackground
MiniProjectTargetSelectorTextColor=fancyBarsNormalTextColor
PanelStatusBarBackgroundColor=shadowBackground
-PanelsWidgetSeparatorLineColor=000000
PanelTextColorDark=text
PanelTextColorMid=ff666666
PanelTextColorLight=fancyBarsNormalTextColor
@@ -376,12 +351,7 @@ TextColorDisabled=textDisabled
TextColorError=ffff4040
TextColorHighlightBackground=ffef0b
TextColorLink=ff007af4
-TextColorLinkVisited=ffa57aff
TextColorNormal=text
-ToggleButtonBackgroundColor=shadowBackground
-ToolBarBackgroundColor=shadowBackground
-TreeViewArrowColorNormal=hoverBackground
-TreeViewArrowColorSelected=text
OutputPanes_DebugTextColor=text
OutputPanes_ErrorMessageTextColor=ffaa0000
diff --git a/share/qtcreator/themes/light-2024.creatortheme b/share/qtcreator/themes/light-2024.creatortheme
new file mode 100644
index 00000000000..dacf51d6317
--- /dev/null
+++ b/share/qtcreator/themes/light-2024.creatortheme
@@ -0,0 +1,381 @@
+[General]
+Includes=light.figmatokens, 2024.tokenmapping
+ThemeName=Light (2024)
+PreferredStyles=
+DefaultTextEditorColorScheme=light-2024.xml
+DefaultToolbarStyle=Relaxed
+
+[Palette]
+shadowBackground=PaletteDark
+text=PaletteWindowText
+textDisabled=PaletteTextDisabled
+selectedBackground=a8ffffff
+alternateBackground=PaletteAlternateBase
+stop_error=ffec7373
+splitter=ffbdbebf
+error=ffdf4f4f
+warning=ffecbc1c
+textColorLinkVisited=PaletteLinkVisited
+backgroundColorDisabled=PaletteWindowDisabled
+qmlDesignerButtonColor=fff8f8f8
+
+;DS Theme Palette START
+;greyscale
+fullWhite=ffffffff
+lightWhite=ffdfdfdf
+offWhite=ffdcdada
+slateGrey=ff8d8d8d
+concreteGrey=ffbbbbbb
+smokeGrey=ff8b8b8b
+shadowGrey=ff636363
+duskGrey=ff606060
+raincloudGrey=ff4d4d4d
+graniteGrey=ff343434
+ashGrey=ff434343
+midnightGrey=ff333333
+dawnGrey=ff2a2a2a
+coalGrey=ff282828
+offBlack=ff202020
+nearBlack=ff1b1b1b
+fullBlack=ff000000
+
+;special colors
+idleGreen=ff649a5d
+runningGreen=ff2eff68
+successGreen=ff2bcf32
+idleRed=ff6a4242
+recordingRed=ffcc3c34
+errorRed=ffaf2b2b
+warningOrange=ffca8113
+splitterBlue=ff64daff
+rgbBlue=ff64daff
+highlightBlue=ff57b9fc
+highlightHover=ff74CBFC
+;DS Theme Palette END
+
+[Colors]
+;DS controls theme START
+
+;NEW FOR QtDS 4
+;4.0
+DScontrolBackground_toolbarIdle=offWhite
+DScontrolBackground_toolbarHover=offWhite
+DScontrolBackground_topToolbarHover=concreteGrey
+DScontrolBackground_statusbarIdle=concreteGrey
+DSControlBackground_statusbarHover=lightWhite
+DScontrolOutline_topToolbarIdle=concreteGrey
+DScontrolOutline_topToolbarHover=lightWhite
+DSidleGreen=idleGreen
+DSrunningGreen=runningGreen
+DStoolbarBackground=offWhite
+DStoolbarIcon_blocked=shadowGrey
+DSthumbnailBackground_baseState=smokeGrey
+DStextColor=raincloudGrey
+DSstatusbarBackground=concreteGrey
+DSprimaryButton_hoverHighlight=highlightHover
+DSstateBackgroundColor_hover=concreteGrey
+DSstateControlBackgroundColor_globalHover=concreteGrey
+DSstateControlBackgroundColor_hover=smokeGrey
+DSpanelBackground=dawnGrey
+
+;4.3
+DSpopoutBackground=offWhite
+DSpopoutControlBackground_idle=offWhite
+DSpopoutControlBackground_hover=lightWhite
+DSpopoutControlBackground_globalHover=lightWhite
+DSpopoutControlBackground_interaction=highlightBlue
+DSpopoutControlBackground_disabled=offWhite
+DSpopoutPopupBackground=lightWhite
+
+DSpopoutControlBorder_idle=slateGrey
+DSpopoutControlBorder_hover=concreteGrey
+DSpopoutControlBorder_interaction=highlightBlue
+DSpopoutControlBorder_disabled=offWhite
+
+DSpopoutButtonBackground_idle=offWhite
+DSpopoutButtonBackground_hover=lightWhite
+DSpopoutButtonBackground_interaction=highlightBlue
+DSpopoutButtonBackground_disabled=offWhite
+
+DSpopoutButtonBorder_idle=smokeGrey
+DSpopoutButtonBorder_hover=shadowGrey
+DSpopoutButtonBorder_interaction=highlightBlue
+DSpopoutButtonBorder_disabled=offWhite
+
+;4.4
+DSconnectionCodeEditor=lightWhite
+DSconnectionEditorMicroToolbar=concreteGrey
+DSconnectionEditorButtonBackground_hover=lightWhite
+DSconnectionEditorButtonBorder_hover=duskGrey
+DSpillText=fullWhite
+DSpillTextSelected=fullBlack
+DspillTextEdit=fullBlack
+DSpillDefaultBackgroundIdle=shadowGrey
+DSpillDefaultBackgroundHover=smokeGrey
+DSpillOperatorBackgroundIdle=ff6b2a7b
+DSpillOperatorBackgroundHover=ff7e478b
+DSpillLiteralBackgroundIdle=ff447953
+DSpillLiteralBackgroundHover=ff61866B
+
+;END NEW FOR QtDS 4
+
+DSpanelBackground=ffeaeaea
+
+DSwelcomeScreenBackground=ffEAEAEA
+DSsubPanelBackground=ffEFEFEF
+DSthumbnailBackground=ffE8E8E8
+DSthumbnailLabelBackground=ffDDDDDD
+
+DSgreenLight=ff5cdc68
+DSamberLight=ffffbf00
+DSredLight=ffff0401
+
+DSinteraction=highlightBlue
+DSerrorColor=ffdf3a3a
+DSwarningColor=warning
+DSdisabledColor=ff8e8e8e
+
+DSinteractionHover=highlightHover
+
+DScontrolBackground=ffeaeaea
+DScontrolBackgroundInteraction=ffc9c9c9
+DScontrolBackgroundDisabled=ffeaeaea
+DScontrolBackgroundGlobalHover=ffdedddd
+DScontrolBackgroundHover=ffdedddd
+
+DScontrolOutline=ffcecccc
+DScontrolOutlineInteraction=ff2aafd3
+DScontrolOutlineDisabled=ff707070
+
+DStextColorDisabled=ff707070
+DStextSelectionColor=ff2aafd3
+DStextSelectedTextColor=ff000000
+
+DSplaceholderTextColor=ff262626
+DSplaceholderTextColorInteraction=ffababab
+
+DSiconColor=ff262626
+DSiconColorHover=ff191919
+DSiconColorInteraction=ffffffff
+DSiconColorDisabled=ff707070
+DSiconColorSelected=ff2aafd3
+
+DSlinkIndicatorColor=ff808080
+DSlinkIndicatorColorHover=ff1f1f1f
+DSlinkIndicatorColorInteraction=ff2aafd3
+DSlinkIndicatorColorDisabled=ff707070
+
+DSpopupBackground=ffd3d3d3
+DSpopupOverlayColor=99191919
+
+DSsliderActiveTrack=ff7c7b7b
+DSsliderActiveTrackHover=ff000000
+DSsliderActiveTrackFocus=ffaaaaaa
+DSsliderInactiveTrack=ffaaaaaa
+DSsliderInactiveTrackHover=ff505050
+DSsliderInactiveTrackFocus=ff606060
+DSsliderHandle=ff1f1f1f
+DSsliderHandleHover=ff606060
+DSsliderHandleFocus=ff0492c9
+DSsliderHandleInteraction=ff2aafd3
+
+DSscrollBarTrack=smokeGrey
+DSscrollBarHandle=shadowGrey
+DSscrollBarHandle_idle=slateGrey
+
+DSsectionHeadBackground=ffd8d8d8
+
+DSstateDefaultHighlight=ffffe400
+DSstateSeparatorColor=ffadadad
+DSstateBackgroundColor=ffe0e0e0
+DSstatePreviewOutline=ff363636
+
+DSstatePanelBackground=ffdadada
+DSstateHighlight=ff8d8d8d
+
+DSchangedStateText=ff99ccff
+
+DS3DAxisXColor=ffd00000
+DS3DAxisYColor=ff009900
+DS3DAxisZColor=ff5050ff
+
+DSactionBinding=ff2aafd3
+DSactionAlias=fff93a3a
+DSactionKeyframe=ffe0e01b
+DSactionJIT=ff2db543
+
+DStableHeaderBackground=ffff0000
+DStableHeaderText=ff00ff00
+
+DSdockContainerBackground=ff323232
+DSdockContainerSplitter=ff323232
+DSdockAreaBackground=ff262728
+
+DSdockWidgetBackground=ff00ff00
+DSdockWidgetSplitter=ff595959
+DSdockWidgetTitleBar=ffeaeaea
+
+DStitleBarText=ffdadada
+DStitleBarIcon=ff4f5052
+DStitleBarButtonHover=40ffffff
+DStitleBarButtonPress=60ffffff
+
+DStabContainerBackground=ffdadada
+DStabSplitter=ff595959
+
+DStabInactiveBackground=ff999999
+DStabInactiveText=ff262626
+DStabInactiveIcon=ffffffff
+DStabInactiveButtonHover=ff1f1f1f
+DStabInactiveButtonPress=ff1f1f1f
+
+DStabActiveBackground=ffdadada
+DStabActiveText=ff111111
+DStabActiveIcon=ff000000
+DStabActiveButtonHover=ffdadada
+DStabActiveButtonPress=ffdadada
+
+DStabFocusBackground=ff2aafd3
+DStabFocusText=ff111111
+DStabFocusIcon=ff000000
+DStabFocusButtonHover=ff2aafd3
+DStabFocusButtonPress=ff2aafd3
+
+DSnavigatorBranch=ff7c7b7b
+DSnavigatorBranchIndicator=ff7c7b7b
+DSnavigatorItemBackground=ffeaeaea
+DSnavigatorItemBackgroundHover=ffdedddd
+DSnavigatorItemBackgroundSelected=ffffffff
+DSnavigatorText=ff262626
+DSnavigatorTextHover=ff1f1f1f
+DSnavigatorTextSelected=ff2aafd3
+DSnavigatorIcon=ff1f1f1f
+DSnavigatorIconHover=ff7c7b7b
+DSnavigatorIconSelected=ff1f1f1f
+DSnavigatorAliasIconChecked=ffff0000
+DSnavigatorDropIndicatorBackground=ff2aafd3
+DSnavigatorDropIndicatorOutline=ff2aafd3
+
+DSheaderViewBackground=ffd8d8d8
+DStableViewAlternateBackground=ff00ff00
+
+DStoolTipBackground=ff111111
+DStoolTipOutline=ffdadada
+DStoolTipText=ffdadada
+
+DSUnimportedModuleColor=ffe33c2e
+
+DSBackgroundColorAlternate=ffeaeaea
+DSBackgroundColorNormal=ffd8d8d8
+
+;DS controls theme END
+
+DetailsWidgetBackgroundColor=28ffffff
+IconsCodeModelKeywordColor=ff777777
+IconsCodeModelClassColor=ffc0b550
+IconsCodeModelStructColor=ff53b053
+IconsCodeModelFunctionColor=ffd34373
+IconsCodeModelVariableColor=ff2bbbcc
+IconsCodeModelEnumColor=ffc0b550
+IconsCodeModelMacroColor=ff476ba0
+IconsCodeModelAttributeColor=ff316511
+IconsCodeModelUniformColor=ff994899
+IconsCodeModelVaryingColor=ffa08833
+IconsCodeModelOverlayBackgroundColor=70ffffff
+IconsCodeModelOverlayForegroundColor=ff232425
+TextColorHighlightBackground=ffef0b
+
+OutputPanes_DebugTextColor=text
+OutputPanes_ErrorMessageTextColor=ffaa0000
+OutputPanes_MessageOutput=ff0000aa
+OutputPanes_NormalMessageTextColor=ff0000aa
+OutputPanes_StdErrTextColor=ffaa0000
+OutputPanes_StdOutTextColor=ff000000
+OutputPanes_WarningMessageTextColor=ff808000
+OutputPanes_TestPassTextColor=ff009900
+OutputPanes_TestFailTextColor=ffa00000
+OutputPanes_TestXFailTextColor=ff28f028
+OutputPanes_TestXPassTextColor=fff02828
+OutputPanes_TestSkipTextColor=ff787878
+OutputPanes_TestWarnTextColor=ffd0bb00
+OutputPanes_TestFatalTextColor=ff640000
+OutputPanes_TestDebugTextColor=ff329696
+
+Debugger_LogWindow_LogInput=ff00acac
+Debugger_LogWindow_LogStatus=ff00875a
+Debugger_LogWindow_LogTime=ffbf0303
+
+Debugger_WatchItem_ValueNormal=text
+Debugger_WatchItem_ValueInvalid=textDisabled
+Debugger_WatchItem_ValueChanged=ffbf0303
+
+Debugger_Breakpoint_TextMarkColor=ffff4040
+
+Timeline_TextColor=text
+Timeline_BackgroundColor2=fff6f6f6
+Timeline_DividerColor=ffd6d6d6
+Timeline_HighlightColor=ff3099dc
+Timeline_PanelBackgroundColor=ffd6d6d6
+Timeline_PanelHeaderColor=ff888888
+Timeline_HandleColor=ff888888
+Timeline_RangeColor=selectedBackground
+
+VcsBase_FileStatusUnknown_TextColor=ff000000
+VcsBase_FileAdded_TextColor=ff00aa00
+VcsBase_FileModified_TextColor=ff0000ee
+VcsBase_FileDeleted_TextColor=ff800000
+VcsBase_FileRenamed_TextColor=ffd77d00
+VcsBase_FileUnmerged_TextColor=ffee0000
+
+Bookmarks_TextMarkColor=ffa0a0ff
+
+QmlDesigner_BackgroundColor=qmlDesignerButtonColor
+QmlDesigner_HighlightColor=ff46a2da
+QmlDesigner_FormEditorSelectionColor=ff4ba2ff
+QmlDesigner_FormEditorForegroundColor=ffffffff
+QmlDesigner_BackgroundColorDarkAlternate=ffeaeaea
+QmlDesigner_BackgroundColorDarker=fff5f5f5
+QmlDesigner_BorderColor=splitter
+QmlDesigner_ButtonColor=ffcccccc
+QmlDesigner_TabDark=ff585858
+QmlDesigner_TabLight=ffd0d0d0
+QmlDesigner_FormeditorBackgroundColor=qmlDesignerButtonColor
+QmlDesigner_AlternateBackgroundColor=qmlDesignerButtonColor
+QmlDesigner_ScrollBarHandleColor=ffcccccc
+
+TerminalForeground=ff000000
+TerminalSelection=3f000000
+TerminalFindMatch=7fffff00
+TerminalAnsi0=000000
+TerminalAnsi1=8b1b10
+TerminalAnsi2=4aa32e
+TerminalAnsi3=9a9a2f
+TerminalAnsi4=0000ab
+TerminalAnsi5=a320ac
+TerminalAnsi6=49a3b0
+TerminalAnsi7=bfbfbf
+TerminalAnsi8=666666
+TerminalAnsi9=d22d1f
+TerminalAnsi10=62d63f
+TerminalAnsi11=dac911
+TerminalAnsi12=0000fe
+TerminalAnsi13=d22dde
+TerminalAnsi14=69e2e4
+TerminalAnsi15=e5e5e6
+
+[Flags]
+ComboBoxDrawTextShadow=false
+DerivePaletteFromTheme=true
+DrawIndicatorBranch=true
+DrawSearchResultWidgetFrame=false
+DrawTargetSelectorBottom=false
+DrawToolBarHighlights=false
+DrawToolBarBorders=true
+FlatToolBars=true
+FlatSideBarIcons=true
+FlatProjectsMode=false
+FlatMenuBar=false
+ToolBarIconShadow=false
+WindowColorAsBase=false
+DarkUserInterface=false
+QDSTheme=false
diff --git a/share/qtcreator/themes/light.figmatokens b/share/qtcreator/themes/light.figmatokens
index 8bbe56319d3..c156f14bb1f 100644
--- a/share/qtcreator/themes/light.figmatokens
+++ b/share/qtcreator/themes/light.figmatokens
@@ -2,41 +2,47 @@
[Colors]
-Token_Basic_Black=ff131313
-Token_Basic_White=fff2f2f2
+Token_Basic_Black=ff181818
+Token_Basic_White=ffFCFCFC
-Token_Accent_Default=ff23b26a
-Token_Accent_Muted=ff1f9b5d
-Token_Accent_Subtle=ff1a8550
+Token_Accent_Default=ff1EC974
+Token_Accent_Muted=ff12A75D
+Token_Accent_Subtle=ff12834B
-Token_Background_Default=fffcfcfc
+Token_Background_Default=ffFCFCFC
+Token_Background_Muted=ffF2F2F2
+Token_Background_Subtle=ffE3E3E3
-; Token_Background_Muted value from Figma is too dark to ensure proper contrast when used as
-; text bachground. Therefore, it is modified, here.
+Token_Foreground_Default=ffBEBEBE
+Token_Foreground_Muted=ffCDCDCD
+Token_Foreground_Subtle=ffE3E3E3
-;Token_Background_Muted=ffF2F2F2
-Token_Background_Muted=ffF6F6F6
-Token_Background_Subtle=ffe7e7e7
+Token_Text_Default=ff2D2D2D
+Token_Text_Muted=ff595959
+Token_Text_Subtle=ffAEAEAE
+Token_Text_Accent=ff12A75D
-Token_Foreground_Default=ffD8D8D8
-Token_Foreground_Muted=ffE3E3E3
-Token_Foreground_Subtle=ffEFEFEF
+Token_Stroke_Strong=ff595959
+Token_Stroke_Muted=ff909090
+Token_Stroke_Subtle=ffCDCDCD
-Token_Text_Default=ff393939
-Token_Text_Muted=ff6a6a6a
-Token_Text_Subtle=ffbebebe
-Token_Text_Accent=ff1F9B5D
+Token_Notification_Alert_Default=ffBC7A19
+Token_Notification_Alert_Muted=ffEB991F
+Token_Notification_Alert_Subtle=ffFFEBCD
-Token_Stroke_Strong=ff464646
-Token_Stroke_Muted=ff727272
-Token_Stroke_Subtle=ffcdcdcd
+Token_Notification_Neutral_Default=ff27138B
+Token_Notification_Neutral_Muted=ff361EAB
+Token_Notification_Neutral_Subtle=ffD9D2F9
-Token_Notification_Alert=ffeb991f
-Token_Notification_Success=ff23b26a
-Token_Notification_Neutral=ff0e7887
-Token_Notification_Danger=ffdc1343
+Token_Notification_Danger_Default=ffB00F36
+Token_Notification_Danger_Muted=ffDC1343
+Token_Notification_Danger_Subtle=ffFACED9
-Token_Gradient01_Start=ff23B26A
-Token_Gradient01_End=ff0E7887
-Token_Gradient02_Start=ff949494
-Token_Gradient02_End=ff474747
+Token_Notification_Success_Default=ff12834B
+Token_Notification_Success_Muted=ff12A75D
+Token_Notification_Success_Subtle=ffDBFDEC
+
+Token_Gradient01_Start=ff1EC974
+Token_Gradient01_End=ff0099A1
+Token_Gradient02_Start=ff9D9D9D
+Token_Gradient02_End=ff595959
diff --git a/share/qtcreator/translations/README.md b/share/qtcreator/translations/README.md
index 7261305a4b7..25a8d52cbeb 100644
--- a/share/qtcreator/translations/README.md
+++ b/share/qtcreator/translations/README.md
@@ -17,7 +17,7 @@ How To add translations to Qt Creator
- Create a new translation file by running
- cmake --build . -target ts_untranslated
+ cmake --build . --target ts_untranslated
in the build directory. This generates a file
diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts
index cab1639107a..c4312a7d412 100644
--- a/share/qtcreator/translations/qtcreator_de.ts
+++ b/share/qtcreator/translations/qtcreator_de.ts
@@ -775,6 +775,10 @@ Bind to AmbientSound.Infinite to loop the current sound forever.
Collapse All
Alle einklappen
+
+ Edit in Effect Composer
+
+
Add Light Probe
@@ -1378,6 +1382,37 @@ It should be a relative path.
URL der Bildquelle.
+
+ CameraActionsModel
+
+ 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.
+
+
+
+ Camera view settings
+
+
+
CameraSpeedConfigAction
@@ -1407,6 +1442,11 @@ It should be a relative path.
Reset
Zurücksetzen
+
+ <p>You only have partial control in fly mode. For full control, please
+ enable the <span style="text-decoration: underline">Accessibility settings</span></p>
+
+
CameraToggleAction
@@ -1754,7 +1794,7 @@ It should be a relative path.
- Uniform cell size
+ Uniform cell sizes
@@ -1950,7 +1990,7 @@ This can not be undone.
Delete
-
+ Löschen
Cancel
@@ -1973,7 +2013,7 @@ This can not be undone.
Delete
-
+ Löschen
Cancel
@@ -2149,6 +2189,14 @@ This can not be undone.
User Assets
+
+ material
+
+
+
+ item
+
+
ContentLibraryEffectContextMenu
@@ -2194,6 +2242,10 @@ This can not be undone.
Item is imported to the project
+
+ Add an instance to project
+
+
ContentLibraryItemContextMenu
@@ -2217,6 +2269,10 @@ This can not be undone.
Remove from Content Library
+
+ Import bundle
+
+
ContentLibraryMaterial
@@ -2235,10 +2291,6 @@ This can not be undone.
ContentLibraryMaterialsView
-
- No materials available. Make sure you have internet connection.
-
-
<b>Content Library</b> materials are not supported in Qt5 projects.
@@ -2255,6 +2307,10 @@ This can not be undone.
<b>Content Library</b> is disabled inside a non-visual component.
+
+ No materials available. Make sure you have an internet connection.
+
+
No match found.
@@ -2299,7 +2355,7 @@ This can not be undone.
Downloading...
-
+ Lade herunter...
Update texture
@@ -2332,7 +2388,7 @@ This can not be undone.
ContentLibraryTexturesView
- No textures available. Make sure you have internet connection.
+ No textures available. Make sure you have an internet connection.
@@ -2358,6 +2414,10 @@ This can not be undone.
<b>Content Library</b> is disabled inside a non-visual component.
+
+ There are no user assets in the <b>Content Library</b>.
+
+
ContextMenu
@@ -2383,7 +2443,7 @@ This can not be undone.
Delete
-
+ Löschen
Clear
@@ -2463,12 +2523,12 @@ This can not be undone.
- Are you sure you? The action cannot be undone
+ Are you sure? The action cannot be undone.
Remove
-
+ Entfernen
Cancel
@@ -2659,7 +2719,7 @@ defined in <b>Step size</b>.
DownloadPane
Downloading...
-
+ Lade herunter...
Progress:
@@ -2897,7 +2957,7 @@ defined in <b>Step size</b>.
EffectCompositionNode
Remove
-
+ Entfernen
Enable/Disable Node
@@ -4195,6 +4255,21 @@ IDs müssen außerdem mit einem Kleinbuchstaben beginnen.
%2
+
+ IssuesOutputPanel
+
+ Issues
+ Probleme
+
+
+ Output
+ Ausgaben
+
+
+ Clear
+ Löschen
+
+
ItemDelegateSection
@@ -4771,6 +4846,14 @@ a highlight component.
Choose a style for the Qt Quick Controls of the project.
+
+ Show issues.
+
+
+
+ Show application output.
+
+
Switch to Design Mode.
@@ -4930,13 +5013,6 @@ a highlight component.
Qt
-
- MainWindow
-
- MainWindow
-
-
-
MarginSection
@@ -5047,7 +5123,7 @@ a highlight component.
Delete
-
+ Löschen
Create New Material
@@ -5057,28 +5133,25 @@ a highlight component.
Add to Content Library
-
-
- MaterialEditorToolBar
- Apply material to selected model.
+ Import Material
- Create new material.
-
-
-
- Delete current material.
-
-
-
- Open material browser.
+ Export Material
- MaterialEditorTopSection
+ MaterialEditorPreview
+
+ Select preview environment.
+
+
+
+ Select preview model.
+
+
Cone
@@ -5111,14 +5184,28 @@ a highlight component.
Landscape
+
+
+ MaterialEditorToolBar
- Select preview environment.
+ Apply material to selected model.
- Select preview model.
+ Create new material.
+
+ Delete current material.
+
+
+
+ Open material browser.
+
+
+
+
+ MaterialEditorTopSection
Name
Name
@@ -6165,12 +6252,14 @@ operation is in progress.
Alle Syntaxdefinitionen sind aktuell.
- Downloading new syntax definition for '%1'...
- Lade neue Syntaxdefinition für "%1" herunter...
+ Downloading new syntax definition for '%1'…
+ @info
+
- Updating syntax definition for '%1' to version %2...
- Aktualisiere Syntaxdefinition für "%1" auf Version %2...
+ Updating syntax definition for '%1' to version %2…
+ @info
+
<Filter>
@@ -6217,6 +6306,10 @@ operation is in progress.
%1 is a reserved QML keyword.
+
+ %1 is a reserved Qml type.
+
+
%1 is a reserved property keyword.
@@ -6250,6 +6343,10 @@ operation is in progress.
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.
@@ -6263,6 +6360,38 @@ 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
@@ -6639,25 +6768,6 @@ Exporting assets: %2
-
- QmlDesigner::BackendModel
-
- Type
- Typ
-
-
- Name
- Name
-
-
- Singleton
- Singleton
-
-
- Local
-
-
-
QmlDesigner::BackgroundAction
@@ -6876,6 +6986,14 @@ Exporting assets: %2
Content Library
+
+ Texture Exists
+
+
+
+ A texture with the same name '%1' already exists in the Content Library, are you sure you want to overwrite it?
+
+
3D Item Exists
@@ -6884,6 +7002,22 @@ Exporting assets: %2
A 3D item with the same name '%1' already exists in the Content Library, are you sure you want to overwrite it?
+
+ Component Exists
+
+
+
+ A component with the same name '%1' already exists in the Content Library, are you sure you want to overwrite it?
+
+
+
+ Unsupported bundle file
+
+
+
+ The chosen bundle was created with an incompatible version of Qt Design Studio
+
+
QmlDesigner::ContentLibraryWidget
@@ -7080,6 +7214,21 @@ Exporting assets: %2
+
+ QmlDesigner::Edit3DMaterialsAction
+
+ Materials
+
+
+
+ Remove
+ Entfernen
+
+
+ Edit
+
+
+
QmlDesigner::Edit3DView
@@ -7125,10 +7274,6 @@ Exporting assets: %2
Edit Component
-
- Edit Material
-
-
Duplicate
@@ -7143,7 +7288,7 @@ Exporting assets: %2
Delete
-
+ Löschen
Fit Selected Items to View
@@ -7273,6 +7418,14 @@ Exporting assets: %2
Add to Content Library
+
+ Import Component
+
+
+
+ Export Component
+
+
3D view is not supported in MCU projects.
@@ -7579,6 +7732,206 @@ Please check the output pane for more information.
Anker
+
+ QmlDesigner::Import3dDialog
+
+ Asset Import
+
+
+
+ Imported objects
+
+
+
+ Import Options
+
+
+
+ Show All Options
+
+
+
+ Close
+ Schließen
+
+
+ Import
+
+
+
+ Importing:
+
+
+
+ Locate 3D Asset "%1"
+
+
+
+ %1 options
+
+
+
+ No options available for this type.
+
+
+
+ No simple options available for this type.
+
+
+
+ Preview icon generated for non-existent asset: %1
+
+
+
+ Preview generation process crashed.
+
+
+
+ Cancel
+ Abbrechen
+
+
+ Accept
+
+
+
+ Object Type: %1
+
+
+
+
+ Import Size: %1
+
+
+
+ Import ready for preview: %1
+
+
+
+ Click "Accept" to finish the import or adjust options and click "Import" to import again.
+
+
+
+ Import interrupted.
+
+
+
+ Import done.
+
+
+
+ Canceling import.
+
+
+
+ Hide Advanced Options
+
+
+
+ Removed %1 from the import.
+
+
+
+
+ QmlDesigner::Import3dImporter
+
+ Could not create a temporary directory for import.
+
+
+
+ Importing 3D assets.
+
+
+
+ Attempted to reimport no assets.
+
+
+
+ Attempted to reimport non-existing asset: %1
+
+
+
+ Could not access temporary asset directory: "%1".
+
+
+
+ Import process crashed.
+
+
+
+ Import failed for unknown reason.
+
+
+
+ Asset import process failed: "%1".
+
+
+
+ Parsing files.
+
+
+
+ Skipped import of duplicate asset: "%1".
+
+
+
+ Skipped import of existing asset: "%1".
+
+
+
+ No files selected for overwrite, skipping import: "%1".
+
+
+
+ Failed to create qmldir file for asset: "%1".
+
+
+
+ Removing old overwritten assets.
+
+
+
+ Copying asset files.
+
+
+
+ Overwrite Existing Asset?
+
+
+
+ Asset already exists. Overwrite existing or skip?
+"%1"
+
+
+
+ Overwrite Selected Files
+
+
+
+ Overwrite All Files
+
+
+
+ Skip
+ Überspringen
+
+
+ Failed to start import 3D asset process.
+
+
+
+ Updating data model.
+
+
+
+ Failed to insert import statement into qml document.
+
+
+
+ Failed to update imports: %1
+
+
+
QmlDesigner::InsightView
@@ -7980,181 +8333,6 @@ Please check the output pane for more information.
Es konnte kein Element des Typs %1 erzeugt werden
-
- QmlDesigner::ItemLibraryAssetImportDialog
-
- Import
- Import
-
-
- Select import options and press "Import" to import the following files:
-
-
-
- Importing:
-
-
-
- Locate 3D Asset "%1"
-
-
-
- %1 options
-
-
-
- No options available for this type.
-
-
-
- No simple options available for this type.
-
-
-
- Cancel
- Abbrechen
-
-
- Accept
-
-
-
- Import is ready for preview.
-
-
-
- Click "Accept" to finish the import or adjust options and click "Import" to import again.
-
-
-
- Close
- Schließen
-
-
- Import interrupted.
-
-
-
- Import done.
-
-
-
- Canceling import.
-
-
-
- Hide Advanced Options
-
-
-
- Asset Import
-
-
-
- Import Options
-
-
-
- Show All Options
-
-
-
-
- QmlDesigner::ItemLibraryAssetImporter
-
- Could not create a temporary directory for import.
-
-
-
- Importing 3D assets.
-
-
-
- Import process crashed.
-
-
-
- Import failed for unknown reason.
-
-
-
- Asset import process failed: "%1".
-
-
-
- Parsing files.
-
-
-
- Skipped import of duplicate asset: "%1".
-
-
-
- Skipped import of existing asset: "%1".
-
-
-
- No files selected for overwrite, skipping import: "%1".
-
-
-
- Could not access temporary asset directory: "%1".
-
-
-
- Attempted to reimport non-existing asset: %1
-
-
-
- Failed to create qmldir file for asset: "%1".
-
-
-
- Removing old overwritten assets.
-
-
-
- Copying asset files.
-
-
-
- Overwrite Existing Asset?
-
-
-
- Asset already exists. Overwrite existing or skip?
-"%1"
-
-
-
- Overwrite Selected Files
-
-
-
- Overwrite All Files
-
-
-
- Skip
- Überspringen
-
-
- Failed to start import 3D asset process.
-
-
-
- Updating data model.
-
-
-
- Failed to insert import statement into qml document.
-
-
-
- Failed to update imports: %1
-
-
-
QmlDesigner::ItemLibraryImport
@@ -8555,18 +8733,6 @@ Locked components cannot be modified or selected.
Give Feedback...
-
- License: Enterprise
-
-
-
- License: Professional
-
-
-
- Licensee: %1
-
-
Enjoying the %1?
@@ -9012,18 +9178,6 @@ Locked components cannot be modified or selected.
QmlDesigner::TextEditorView
-
- Trigger Completion
- Code-Vervollständigung auslösen
-
-
- Meta+Space
- Meta+Space
-
-
- Ctrl+Space
- Ctrl+Space
-
Code
Code
@@ -9731,6 +9885,18 @@ Locked components cannot be modified or selected.
Create Component
+
+ Add to Content Library
+
+
+
+ Import Component
+
+
+
+ Export Component
+
+
Edit Annotations
@@ -9739,6 +9905,10 @@ Locked components cannot be modified or selected.
Edit in 3D View
+
+ Edit in Effect Composer
+
+
Fill Parent
@@ -10591,10 +10761,6 @@ Locked components cannot be modified or selected.
Error
Fehler
-
- "%1" terminated.
- "%1" beendet.
-
Select JDK Path
Pfad zum JDK auswählen
@@ -10707,6 +10873,10 @@ Locked components cannot be modified or selected.
Select OpenSSL Include Project File
Include-Projektdatei für OpenSSL wählen
+
+ All changes on this page take effect immediately.
+ Alle Änderungen auf dieser Seite werden sofort wirksam.
+
Failed to create the SDK Tools path %1.
Das Verzeichnis "%1" für die SDK-Werkzeuge konnte nicht erstellt werden.
@@ -11124,16 +11294,32 @@ Dies kann nicht rückgängig gemacht werden.
Neues AVD erzeugen
- Target API:
- Ziel-API:
+ Target ABI / API:
+ Ziel-ABI / API:
- Cannot create a new AVD. No suitable Android system image is installed.<br/>Install a system image for the intended Android version from the SDK Manager.
- Erstellen von AVD nicht möglich. Es ist kein geeignetes System-Image installiert.<br/>Installieren Sie ein für die vorgesehene Android-Version passendes System-Image vom SDK-Manager.
+ Skin definition:
+ Skin-Definition:
- Cannot create an AVD for ABI %1.<br/>Install a system image for it from the SDK Manager tab first.
- Erstellen von AVD für ABI %1 nicht möglich.<br/>Installieren Sie zuerst ein passendes System-Image vom SDK-Manager.
+ Avd list command failed. %1 %2
+ Avd List-Kommando ist fehlgeschlagen. %1 %2
+
+
+ Creating new AVD device...
+ Erzeuge neues AVD-Gerät...
+
+
+ Install a system image from the SDK Manager first.
+ Installieren Sie erst ein System-Image vom SDK Manager.
+
+
+ No system images found.
+ Es wurden keine System-Images gefunden.
+
+
+ No system images found for %1.
+ Es wurden keine System-Images für %1 gefunden.
Name:
@@ -11147,14 +11333,6 @@ Dies kann nicht rückgängig gemacht werden.
MiB
MiB
-
- Architecture (ABI):
- Architektur (ABI):
-
-
- Device definition:
- Gerätedefinition:
-
Overwrite existing AVD name
Bestehenden AVD-Namen überschreiben
@@ -11309,26 +11487,22 @@ Das Kit unterstützt "%2", aber das Gerät verwendet "%3".
The deployment AVD "%1" cannot be started.
Das AVD für das Deployment "%1" konnte nicht gestartet werden.
-
- Pulling files necessary for debugging.
- Die für das Debuggen erforderlichen Dateien werden installiert.
-
Package deploy: Running command "%1".
Paket-Deployment: Führe Kommando "%1" aus.
+
+ Android package installation finished with success.
+ Android-Paketinstallation wurde erfolgreich abgeschlossen.
+
+
+ Android package installation failed.
+ Android-Paketinstallation ist fehlgeschlagen.
+
Deploy to Android device
Deployment auf Android-Gerät
-
- %1 needs additional settings to enable Android support. You can configure those settings in the Options dialog.
- %1 benötigt zusätzliche Einstellungen, um die Android-Unterstützung zu aktivieren. Sie können diese im Einstellungsdialog konfigurieren.
-
-
- Configure Android...
- Android konfigurieren...
-
Allowed characters are: a-z A-Z 0-9 and . _ -
Erlaubte Zeichen sind: a-z A-Z 0-9 und . _ -
@@ -11407,12 +11581,6 @@ Der vom Kit mindestens benötigte API-Level ist %1.
Starting Android virtual device failed.
Das Starten des virtuellen Android-Geräts schlug fehl.
-
- Android package installation failed.
-%1
- Android-Paketinstallation fehlgeschlagen.
-%1
-
Cannot create AVD. Invalid input.
AVD kann nicht erstellt werden. Ungültige Eingabe.
@@ -11465,6 +11633,23 @@ Der vom Kit mindestens benötigte API-Level ist %1.
No free ports available on host for QML debugging.
Auf dem Host sind nicht genügend freie Ports für das QML-Debuggen vorhanden.
+
+ Failed to forward %1 debugging ports.
+ %1 = QML/JDB/C++
+ Die Debugging-Ports für %1 konnten nicht weitergeleitet werden.
+
+
+ Activity Manager error: %1
+ Fehler des Activity Manager: %1
+
+
+ Android target "%1" terminated.
+ Android-Ziel "%1" wurde beendet.
+
+
+ Android target "%1" died.
+ Android-Ziel "%1" wurde unerwartet beended.
+
Failed to find application directory.
Anwendungsverzeichnis wurde nicht gefunden.
@@ -11477,46 +11662,10 @@ Der vom Kit mindestens benötigte API-Level ist %1.
The lldb-server binary has not been found.
Die ausführbare Datei für lldb-server wurde nicht gefunden.
-
- Failed to forward QML debugging ports.
- Die Ports des QML-Debuggers konnten nicht übermittelt werden.
-
-
- Failed to start the activity.
- Die Aktivität konnte nicht gestartet werden.
-
-
- Activity Manager threw the error: %1
- Der Activity Manager hat den folgenden Fehler ausgelöst: %1
-
-
- Failed to forward JDB debugging ports.
- JDB-Debugging-Ports konnten nicht weitergeleitet werden.
-
-
- Failed to start JDB.
- JDB konnte nicht gestartet werden.
-
-
- Cannot attach JDB to the running application.
- JDB konnte sich nicht mit der laufenden Anwendung verbinden.
-
-
- Failed to start debugger server.
- Der Debug-Server konnte nicht gestartet werden.
-
Cannot copy C++ debug server.
C++-Debug-Server kann nicht kopiert werden.
-
- Failed to forward C++ debugging ports.
- Die Ports des C++-Debuggers konnten nicht übermittelt werden.
-
-
- "%1" died.
- "%1" beendet.
-
Android SDK Manager
Android SDK-Manager
@@ -11838,18 +11987,6 @@ Installieren Sie diese manuell, nachdem der aktuelle Vorgang abgeschlossen ist.
Include prebuilt OpenSSL libraries
Bereits erstellte OpenSSL-Bibliotheken einbinden
-
- No application .pro file found in this project.
- Die .pro-Datei der Anwendung konnte in diesem Projekt nicht gefunden werden.
-
-
- No Application .pro File
- Keine .pro-Datei der Anwendung
-
-
- Android package source directory:
- Quellverzeichnis des Android-Pakets:
-
The Android package source directory cannot be the same as the project directory.
Das Android-Paket-Quellverzeichnis muss sich vom Projektverzeichnis unterscheiden.
@@ -11859,21 +11996,40 @@ Installieren Sie diese manuell, nachdem der aktuelle Vorgang abgeschlossen ist.
Gradle-Dateien ins Android-Verzeichnis kopieren
- It is highly recommended if you are planning to extend the Java part of your Qt application.
- Dies ist sehr zu empfehlen, wenn sie den Java-Teil Ihrer Qt-Anwendung erweitern wollen.
+ No application build targets found in this project.
+ Im Projekt wurden keine Build-Ziele für Anwendungen gefunden.
+
+
+ No Application Build Target
+ Kein Build-Ziel für eine Anwendung
+
+
+ Select the build target for which to create the Android templates.
+ Wählen Sie das Build-Ziel, für das die Android-Vorlagen erstellt werden sollen.
+
+
+ Build target:
+ Build-Ziel:
+
+
+ Select a build target
+ Wählen Sie ein Build-Ziel
+
+
+ It is highly recommended if you are planning to extend the Java side of your Qt application.
+ Dies ist sehr zu empfehlen, wenn Sie planen, ihre Qt-Anwendung mit Java-Code zu erweitern.
Select the Android package source directory.
-The files in the Android package source directory are copied to the build directory's Android directory and the default files are overwritten.
+The files in the Android package source directory will be copied to the Android build directory and the default templates will be overwritten.
Wählen Sie das Quellverzeichnis des Android-Pakets aus.
-Die Dateien aus dem Quellverzeichnis des Android-Pakets werden in das Verzeichnis "Android" im Build-Verzeichnis kopiert und die Vorgabedateien überschrieben.
+Die Dateien aus dem Quellverzeichnis des Android-Pakets werden in das Android-Build-Verzeichnis kopiert und die Vorlagen überschrieben.
- The Android template files will be created in the %1 set in the .pro file.
- %1 is the qmake variable ANDROID_PACKAGE_SOURCE_DIR
- Die Template-Dateien für Android werden in dem Verzeichnis erstellt, dass als %1 in der .pro-Datei angegeben ist.
+ The Android template files will be created under the %1 path that is set in the project file.
+ Die Vorlage-Dateien für Android werden in dem Verzeichnis erstellt, das als %1 in der Projektdatei angegeben ist.
Create Android Template Files Wizard
@@ -11887,18 +12043,6 @@ Die Dateien aus dem Quellverzeichnis des Android-Pakets werden in das Verzeichni
Could not update the project file %1.
Die Projekt-Datei %1 konnte nicht aktualisiert werden.
-
- Select the .pro file for which you want to create the Android template files.
- Wählen Sie die .pro-Datei, für die Sie die Android-Vorlagendateien erstellen wollen.
-
-
- .pro file:
- .pro-Datei:
-
-
- Select a .pro File
- .pro-Datei wählen
-
Android Clang
Android Clang
@@ -11972,88 +12116,6 @@ Die Dateien aus dem Quellverzeichnis des Android-Pakets werden in das Verzeichni
%1 expands to wildcard list for file dialog, do not change order
Bilder %1
-
- %1 has been stopped.
- %1 wurde angehalten.
-
-
- Selected device is invalid.
- Das ausgewählte Gerät ist ungültig.
-
-
- Selected device is disconnected.
- Das ausgewählte Gerät ist nicht verbunden.
-
-
- Launching AVD.
- Starte AVD.
-
-
- Could not start AVD.
- Das Starten des AVD ist fehlgeschlagen.
-
-
- No valid AVD has been selected.
- Es wurde kein gültiges AVD ausgewählt.
-
-
- Checking if %1 app is installed.
- Überprüfe, ob die Anwendung %1 installiert ist.
-
-
- ABI of the selected device is unknown. Cannot install APK.
- Die ABI des ausgewählten Geräts ist unbekannt. Kann das APK nicht installieren.
-
-
- Cannot install %1 app for %2 architecture. The appropriate APK was not found in resources folders.
- Kann die Anwendung %1 nicht für die Architektur %2 installieren. Es wurde kein passendes APK in den Ressourcenverzeichnissen gefunden.
-
-
- Installing %1 APK.
- Installiere APK für %1.
-
-
- Too many .qmlproject files in your project. Open directly the .qmlproject file you want to work with and then run the preview.
- Es existieren zu viele .qmlproject-Dateien in Ihrem Projekt. Öffnen Sie die gewünschte .qmlproject-Datei direkt und starten Sie dann die Vorschau.
-
-
- No .qmlproject file found among project files.
- Es wurde keine .qmlproject-Datei in den Projektdateien gefunden.
-
-
- Could not gather information on project files.
- Das Einholen von Informationen über Projektdateien ist fehlgeschlagen.
-
-
- Could not create file for %1 "%2".
- %2 is a command line for a rcc call
- Das Erstellen einer Datei für %1 ist fehlgeschlagen ("%2").
-
-
- A timeout occurred running "%1".
- Zeitüberschreitung bei Ausführung von "%1".
-
-
- Crash while creating file for %1 "%2".
- %2 is a command line for a rcc call
- Der Prozess zum Erstellen einer Datei für %1 ist abgestürzt ("%2").
-
-
- Creating file for %1 failed. "%2" (exit code %3).
- Das Erstellen einer Datei für %1 ist fehlgeschlagen. "%2" (Rückgabewert %3).
-
-
- Uploading files.
- Lade Dateien hoch.
-
-
- Starting %1.
- Starte %1.
-
-
- %1 is running.
- %1 wird ausgeführt.
-
Java:
Java:
@@ -12311,6 +12373,14 @@ und das Überschreiben Ihrer Einstellungen erfordert. Das Überschreiben erlaube
Disables the automatic updates based on the current run configuration and allows customizing the values.
Deaktiviert die auf der aktuellen Ausführungskonfiguration basierenden automatischen Aktualisierungen und erlaubt, die Werte anzupassen.
+
+ Restart if running:
+ Laufende Anwendung neu starten:
+
+
+ Restarts the application in case it is already running.
+ Startet die Anwendung neu, falls sie bereits läuft.
+
Controller:
Controller:
@@ -12648,6 +12718,10 @@ Ausführbare Datei: %2
Test Results
Testergebnisse
+
+ Show Durations
+ Laufzeiten anzeigen
+
Pass
Bestanden
@@ -13683,37 +13757,9 @@ Siehe auch die Einstellungen für Google Test.
Display name for AutotoolsProjectManager::ConfigureStep id.
Configure
-
- Parsing %1 in directory %2
- Werte %1 im Verzeichnis %2 aus
-
-
- Parsing directory %1
- Werte Verzeichnis %1 aus
-
QtC::Axivion
-
- Project:
- Projekt:
-
-
- Lines of code:
- Codezeilen:
-
-
- Analysis timestamp:
- Zeitstempel der Analyse:
-
-
- unknown
- unbekannt
-
-
- Total:
- Summe:
-
Owner
Eigentümer
@@ -13726,6 +13772,18 @@ Siehe auch die Einstellungen für Google Test.
Total rows:
Gesamtzeilen:
+
+ Open Preferences...
+ Einstellungen öffnen...
+
+
+ Configure dashboards in Preferences > Axivion > General.
+ Konfigurieren Sie Dashboards in Einstellungen > Axivion > Allgemein.
+
+
+ None
+ Kein
+
No Data
Keine Daten
@@ -13735,12 +13793,28 @@ Siehe auch die Einstellungen für Google Test.
Axivion
- Show dashboard
- Dashboard anzeigen
+ Issues
+ Probleme
- Search for issues
- Probleme durchsuchen
+ Issue Details
+ Problemdetails
+
+
+ Reload
+ Neu laden
+
+
+ Show Inline Issues
+ Problem im Code anzeigen
+
+
+ Show Issue Annotations Inline
+ Inline-Annotationen für Probleme anzeigen
+
+
+ Show Online Filter Help
+ Online-Filterhilfe anzeigen
Open Issue in Dashboard
@@ -13755,8 +13829,8 @@ Siehe auch die Einstellungen für Google Test.
Dashboard-Link in die Zwischenablage kopieren
- Show rule details
- Regeldetails anzeigen
+ Show Issue Properties
+ Problemeigenschaften anzeigen
Certificate Error
@@ -13814,10 +13888,6 @@ Benutzer: %2
Fetching DashboardInfo error.
Fehler beim Abrufen der DashboardInfo.
-
- The DashboardInfo doesn't contain project "%1".
- Die DashboardInfo enthält das Projekt "%1" nicht.
-
The activated link appears to be external.
Do you want to open "%1" with its default application?
@@ -13832,34 +13902,6 @@ Wollen Sie "%1" mit der Standardanwendung öffnen?
Search for issues inside the Axivion dashboard or request issue details for Axivion inline annotations to see them here.
Suchen Sie nach Problemen im Axivion-Dashboard oder fordern Sie Problemdetails für Inline-Annotationen von Axivion an, um sie hier anzuzeigen.
-
- Fetch Projects
- Projekte abrufen
-
-
- Link Project
- Projekt verknüpfen
-
-
- Unlink Project
- Projektverknüpfung aufheben
-
-
- Dashboard projects:
- Dashboard-Projekte:
-
-
- This project is not linked to a dashboard project.
- Dieses Projekt ist nicht mit einem Dashboard-Projekt verknüpft.
-
-
- This project is linked to "%1".
- Dieses Projekt ist mit "%1" verknüpft.
-
-
- Incomplete or misconfigured settings.
- Unvollständige oder fehlerhafte Einstellungen.
-
Highlight marks
Markierungen hervorheben
@@ -13868,6 +13910,10 @@ Wollen Sie "%1" mit der Standardanwendung öffnen?
Marks issues on the scroll bar.
Markiert Probleme in der Bildlaufleiste.
+
+ Axivion: Deleting API token for %1 as respective dashboard server was removed.
+ Axivion: Lösche API-Token für %1, da das entsprechende Dashboard entfernt wurde.
+
Dashboard URL:
Dashboard-URL:
@@ -13916,14 +13962,82 @@ Wollen Sie "%1" mit der Standardanwendung öffnen?
Edit Dashboard Configuration
Dashboard-Konfiguration bearbeiten
+
+ Project name:
+ Projektname:
+
+
+ Analysis path:
+ Analysepfad:
+
+
+ Local path:
+ Lokaler Pfad:
+
+
+ Project Name
+ Projektname
+
+
+ Analysis Path
+ Analysepfad
+
+
+ Local Path
+ Lokaler Pfad
+
+
+ Add
+ Hinzufügen
+
+
+ Delete
+ Löschen
+
+
+ Move Up
+ Nach oben
+
+
+ Move Down
+ Nach unten
+
General
Allgemein
+
+ Path Mapping
+ Pfadzuordnung
+
Fetching...
Rufe ab...
+
+ Allows for filters combined with & as logical AND, | as logical OR and ! as logical NOT. The filters may contain * to match sequences of arbitrary characters. If a single filter is quoted with double quotes it will be matched on the complete string. Some filter characters require quoting of the filter expression with double quotes. If inside double quotes you need to escape " and \ with a backslash.
+Some examples:
+
+a matches issues where the value contains the letter 'a'
+"abc" matches issues where the value is exactly 'abc'
+!abc matches issues whose value does not contain 'abc'
+(ab | cd) & !ef matches issues with values containing 'ab' or 'cd' but not 'ef'
+"" matches issues having an empty value in this column
+!"" matches issues having any non-empty value in this column
+ Filter können mit & als logischem Und, | als logischem Oder und ! als logischem Nicht kombiniert werden. Die Filter können * als Platzhalter für Sequenzen beliebiger Zeichen enthalten. Wenn ein einzelner Filter mit doppelten Anführungszeichen eingeschlossen ist, wird er mit der gesamten Zeichenkette verglichen. Einige Filterzeichen erfordern, dass der Filterausdruck mit doppelten Anführungszeichen eingeschlossen ist. Innerhalb doppelter Anführungszeichen müssen " und \ mit einem Backslash maskiert werden.
+Einige Beispiele:
+
+a entspricht Problemen, deren Wert den Buchstaben 'a' enthält
+"abc" entspricht Problemen, deren Wert exakt 'abc' ist
+!abs entspricht Problemen, deren Wert nicht 'abc' enthält
+(ab | cd) & !ef entspricht Problemen, deren Wert 'ab' oder 'cd' enthält, aber nicht 'ef'
+"" entspricht Problemen, die in dieser Spalte einen leeren Wert haben
+!"" entspricht Problemen, die in dieser Spalte einen Wert haben, der nicht leer ist
+
+
+ Apply
+ Anwenden
+
QtC::BareMetal
@@ -14532,10 +14646,6 @@ Wollen Sie "%1" mit der Standardanwendung öffnen?
IAREW
IAREW
-
- &Compiler path:
- &Compiler-Pfad:
-
Platform codegen flags:
Plattformspezifische Optionen für codegen:
@@ -15239,12 +15349,12 @@ Zum Beispiel bewirkt die Angabe "Revision: 15" dass der Branch auf Rev
Fallback-Stil:
- Clang Format command:
- Ausführbare Datei von Clang Format:
+ ClangFormat command:
+ Ausführbare Datei von ClangFormat:
- Clang Format
- Clang Format
+ ClangFormat
+ ClangFormat
Use file uncrustify.cfg defined in project files
@@ -15704,6 +15814,22 @@ Zum Beispiel bewirkt die Angabe "Revision: 15" dass der Branch auf Rev
Ctrl+Alt+B
Ctrl+Alt+B
+
+ Build &Subproject "%1"
+ &Unterprojekt "%1" erstellen
+
+
+ Build &Subproject
+ &Unterprojekt erstellen
+
+
+ Rebuild
+ Neu erstellen
+
+
+ Clean
+ Bereinigen
+
Re-generates the kits that were created for CMake presets. All manual modifications to the CMake project settings will be lost.
Erstellt die Kits neu, die für CMake Presets erstellt wurden. Alle manuellen Änderungen an den CMake-Projekteinstellungen gehen dabei verloren.
@@ -15784,6 +15910,10 @@ 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.
@@ -15951,6 +16081,10 @@ Zum Beispiel bewirkt die Angabe "Revision: 15" dass der Branch auf Rev
Initial Configuration:
Initiale Konfiguration:
+
+ Expands to:
+ Wird expandiert zu:
+
Current Configuration:
Aktuelle Konfiguration:
@@ -17002,18 +17136,6 @@ Stellen Sie sicher, dass der Wert der CMAKE_BUILD_TYPE-Variable derselbe wie der
Disable Diagnostic in Current Project
Meldung für aktuelles Projekt deaktivieren
-
- Could not retrieve build directory.
- Build-Verzeichnis konnte nicht abgefragt werden.
-
-
- Could not retrieve project info.
- Projekt-Information konnte nicht abgefragt werden.
-
-
- Could not create "%1": %2
- Konnte "%1" nicht erzeugen: %2
-
QtC::ClangFormat
@@ -17087,6 +17209,30 @@ Das integrierte Codemodell übernimmt das Einrücken.
When this option is enabled, ClangFormat will use a user-specified configuration from the widget below, instead of the project .clang-format file. You can customize the formatting options for your code by adjusting the settings in the widget. Note that any changes made there will only affect the current configuration, and will not modify the project .clang-format file.
Wenn diese Einstellung aktiviert ist, wird statt der .clang-format-Datei des Projekts die benutzerdefinierte Einstellung unten verwendet. Beachten Sie, dass die unten durchgeführten Einstellungen nur die aktuelle Konfiguration beeinflussen und die .clang-format-Datei des Projekts nicht verändert wird.
+
+ Import Code Format
+ Code-Format importieren
+
+
+ ClangFormat (*clang-format*);;All files (*)
+ ClangFormat (*clang-format*);;All files (*)
+
+
+ Import Code Style
+ Coding Style importieren
+
+
+ Enter a name for the imported code style:
+ Geben Sie einen Namen für den importierten Coding Style ein:
+
+
+ Cannot import code style from "%1".
+ Der Coding Style kann nicht von "%1" importiert werden.
+
+
+ Export Code Format
+ Code-Format exportieren
+
ClangFormat
ClangFormat
@@ -17694,6 +17840,18 @@ Setzen Sie erst eine gültige ausführbare Datei.
Clazy-Standalone:
Clazy-Standalone:
+
+ Compilation database for %1 successfully generated at "%2".
+ Kompilierungsdatenbank für %1 wurde erfolgreich in "%2" erzeugt.
+
+
+ Generating compilation database for %1 failed: %2
+ Erzeugen der Kompilierungsdatenbank für %1 ist fehlgeschlagen: %2
+
+
+ Generating compilation database for %1 at "%2" ...
+ Erzeuge Kompilierungsdatenbank für %1 in "%2" ...
+
QtC::ClassView
@@ -18186,6 +18344,89 @@ Setzen Sie erst eine gültige ausführbare Datei.
&Hijack
+
+ QtC::CmdBridge
+
+ Command failed with exit code %1: %2
+ Kommando ist mit Rückgabewert %1 fehlgeschlagen: %2
+
+
+ Error starting cmdbridge: %1
+ Fehler beim Starten von cmdbridge: %1
+
+
+ Remote root path is empty
+ Entferntes Wurzelverzeichnis ist leer
+
+
+ Remote root path is not absolute
+ Entferntes Wurzelverzeichnis ist nicht absolut
+
+
+ Could not find dd on remote host: %1
+ dd konnte auf dem entfernten Host nicht gefunden werden: %1
+
+
+ Error reading file: %1
+ Fehler beim Lesen der Datei: %1
+
+
+ Error writing file: %1
+ Fehler beim Schreiben der Datei: %1
+
+
+ File does not exist
+ Datei existiert nicht
+
+
+ Error removing file: %1
+ Fehler beim Entfernen der Datei: %1
+
+
+ Error copying file: %1
+ Fehler beim Kopieren der Datei: %1
+
+
+ Error renaming file: %1
+ Fehler beim Umbenennen der Datei: %1
+
+
+ Error killing process: %1
+ Fehler beim Beenden des Prozesses: %1
+
+
+ Error creating temporary file: %1
+ Fehler beim Erstellen der temporären Datei: %1
+
+
+ Failed starting bridge process
+ Das Starten des Bridge-Prozesses ist fehlgeschlagen
+
+
+ Failed starting bridge process: %1
+ Das Starten des Bridge-Prozesses ist fehlgeschlagen: %1
+
+
+ Bridge process not running
+ Bridge-Prozess läuft nicht
+
+
+ FollowSymlinks is not supported
+ FollowSymlinks wird nicht unterstützt
+
+
+ Kickoff signal is not supported
+ Kickoff-Signal wird nicht unterstützt
+
+
+ CloseWriteChannel signal is not supported
+ CloseWriteChannel-Signal wird nicht unterstützt
+
+
+ No command bridge found for architecture %1-%2
+ Keine Command-Bridge für die Architektur %1-%2 gefunden
+
+
QtC::Coco
@@ -18465,6 +18706,18 @@ Setzen Sie erst eine gültige ausführbare Datei.
powered by %1
Powered by %1
+
+ Change backend URL.
+ Backend-URL ändern.
+
+
+ Set Compiler Explorer URL
+ Compiler Explorer-URL festlegen
+
+
+ URL:
+ URL:
+
Compiler Explorer Editor
Compiler Explorer-Editor
@@ -18577,26 +18830,6 @@ Der Code wurde in die Zwischenablage kopiert.
The login request failed: %1
Die Anmeldung ist fehlgeschlagen: %1
-
- Select Previous Copilot Suggestion
- Vorangehenden Copilot-Vorschlag auswählen
-
-
- Select Next Copilot Suggestion
- Nächsten Copilot-Vorschlag auswählen
-
-
- Apply (%1)
- Anwenden (%1)
-
-
- Apply Word (%1)
- Wort anwenden (%1)
-
-
- %1 of %2
- %1 von %2
-
Enabling %1 is subject to your agreement and abidance with your applicable %1 terms. It is your responsibility to know and accept the requirements and parameters of using tools like %1. This may include, but is not limited to, ensuring you have the rights to allow %1 access to your code, as well as understanding any implications of your use of %1 and suggestions produced (like copyright, accuracy, etc.).
Das Aktivieren von %1 unterliegt Ihrer Zustimmung und der Einhaltung der für Sie geltenden Bestimmungen für die Nutzung von %1. Es liegt in Ihrer Verantwortung, die Bedingungen und Parameter für die Nutzung von Werkzeugen wie %1 zu kennen und zu akzeptieren. Dies umfasst unter anderem, aber beschränkt sich nicht darauf, sicherzustellen, dass Sie das Recht haben, %1 Zugriff zu Ihrem Code zu geben, und dass Sie die Implikationen Ihrer Nutzung von %1 und der davon erstellten Vorschläge kennen (bzgl. Urheberrecht, Copyright, Genauigkeit, usw.).
@@ -19213,6 +19446,18 @@ Wenn die Systemzeiger für das Verändern der Größe von Ansichten nicht korrek
Minimize
Minimieren
+
+ Could not find %1 executable in %2
+ Die ausführbare Datei %1 konnte in %2 nicht gefunden werden
+
+
+ The Qt logo, axivion stopping software erosion logo, Qt Group logo, as well as Qt®, Axivion®, avixion stopping software erosion®, Boot to Qt®, Built with Qt®, Coco®, froglogic®, Qt Cloud Services®, Qt Developer Days®, Qt Embedded®, Qt Enterprise®, Qt Group®, Qt Mobile®, Qt Quick®, Qt Quick Compiler®, Squish® are registered trademarks of The Qt Company Ltd. or its subsidiaries.
+ The Qt logo, axivion stopping software erosion logo, Qt Group logo, as well as Qt®, Axivion®, avixion stopping software erosion®, Boot to Qt®, Built with Qt®, Coco®, froglogic®, Qt Cloud Services®, Qt Developer Days®, Qt Embedded®, Qt Enterprise®, Qt Group®, Qt Mobile®, Qt Quick®, Qt Quick Compiler®, Squish® are registered trademarks of The Qt Company Ltd. or its subsidiaries.
+
+
+ %1 is free software, and you are welcome to redistribute it under <a href="%2">certain conditions</a>. For some components, different conditions might apply though.
+ %1 is free software, and you are welcome to redistribute it under <a href="%2">certain conditions</a>. For some components, different conditions might apply though.
+
Ctrl+M
Ctrl+M
@@ -19246,8 +19491,12 @@ Wenn die Systemzeiger für das Verändern der Größe von Ansichten nicht korrek
Stil der Moduswahl wechseln
- Mode Selector Style
- Stil der Moduswahl
+ Hide
+ Verbergen
+
+
+ Modes
+ Modi
Icons and Text
@@ -19261,6 +19510,11 @@ Wenn die Systemzeiger für das Verändern der Größe von Ansichten nicht korrek
Hidden
Unsichtbar
+
+ Show %1
+ %1 = name of a mode
+ %1 anzeigen
+
Ctrl+0
Ctrl+0
@@ -19387,6 +19641,16 @@ Wenn die Systemzeiger für das Verändern der Größe von Ansichten nicht korrek
Open file "%1" with:
Öffne Datei "%1" mit:
+
+ Show {} &preceding lines
+ The placeholder "{}" is replaced by a spin box for selecting a number.
+ Zeige {} &vorausgehende Zeilen
+
+
+ Show {} &subsequent lines
+ The placeholder "{}" is replaced by a spin box for selecting a number.
+ Zeige {} &nachfolgende Zeilen
+
Maximize
Maximieren
@@ -19564,14 +19828,6 @@ Wenn die Systemzeiger für das Verändern der Größe von Ansichten nicht korrek
<br/>Built on %1 %2<br/>
<br/>Erstellt am %1 %2<br/>
-
- <h3>%1</h3>%2<br/>%3%4%5<br/>Copyright 2008-%6 %7. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/>
- <h3>%1</h3>%2<br/>%3%4%5<br/>Copyright 2008-%6 %7. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/>
-
-
- The Qt logo as well as Qt®, Qt Quick®, Built with Qt®, Boot to Qt®, Qt Quick Compiler®, Qt Enterprise®, Qt Mobile® and Qt Embedded® are registered trademarks of The Qt Company Ltd.
- The Qt logo as well as Qt®, Qt Quick®, Built with Qt®, Boot to Qt®, Qt Quick Compiler®, Qt Enterprise®, Qt Mobile® and Qt Embedded® are registered trademarks of The Qt Company Ltd.
-
Switch to <b>%1</b> mode
Gehe zu Modus <b>'%1'</b>
@@ -19873,19 +20129,24 @@ to version control (%2)?
%1
unter Versionsverwaltung (%2) stellen?
-
- Could not add the file
-%1
-to version control (%2)
-
- Die Datei
-%1
-konnte nicht unter Versionsverwaltung (%2) gestellt werden
-
+
+ Could not add the following files to version control (%1)
+%2
+... and %n more.
+ %1 = name of VCS system, %2 = lines with file paths
+
+ Die folgenden Dateien konnten nicht zur Versionsverwaltung (%1) hinzugefügt werden
+%2
+... und eine weitere.
+ Die folgenden Dateien konnten nicht zur Versionsverwaltung (%1) hinzugefügt werden
+%2
+... und %n weitere.
+
Could not add the following files to version control (%1)
%2
+ %1 = name of VCS system, %2 = lines with file paths
Die folgenden Dateien konnten nicht unter Versionsverwaltung (%1) gestellt werden:
%2
@@ -20074,10 +20335,6 @@ konnte nicht unter Versionsverwaltung (%2) gestellt werden
Priority:
Priorität:
-
- <html><head/><body><p>MIME magic data is interpreted as defined by the Shared MIME-info Database specification from <a href="http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html">freedesktop.org</a>.<hr/></p></body></html>
- <html><head/><body><p>MIME Magic Data wird interpretiert wie in der Shared MIME-Info Datenbank-Spezifikation von <a href="http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html">freedesktop.org</a> festgelegt.<hr/></p></body></html>
-
Type:
Typ:
@@ -20086,6 +20343,10 @@ konnte nicht unter Versionsverwaltung (%2) gestellt werden
RegExp
RegExp
+
+ <html><head/><body><p>MIME magic data is interpreted as defined by the Shared MIME-info Database specification from <a href="https://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec/">freedesktop.org</a>.<hr/></p></body></html>
+ <html><head/><body><p>MIME Magic Data wird interpretiert wie in der Shared MIME-Info Datenbank-Spezifikation von <a href="https://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec/">freedesktop.org</a> festgelegt.<hr/></p></body></html>
+
Host16
Host16
@@ -20155,6 +20416,14 @@ konnte nicht unter Versionsverwaltung (%2) gestellt werden
Save Contents...
Inhalt speichern...
+
+ Copy Contents to Scratch Buffer
+ Inhalt in Notizbereich kopieren
+
+
+ Failed to open editor for "%1".
+ Es konnte kein Editor für die Datei "%1" geöffnet werden.
+
Elided %n characters due to Application Output settings
@@ -20168,18 +20437,6 @@ konnte nicht unter Versionsverwaltung (%2) gestellt werden
[Überschüssige anstehende Ausgaben werden verworfen.]
-
- Creates qm translation files that can be used by an application from the translator's ts files
- Erzeugt aus den ts-Dateien des Übersetzers qm-Übersetzungsdateien, die von einer Anwendung genutzt werden können
-
-
- Release Translations (lrelease)
- Übersetzungen freigeben (lrelease)
-
-
- Linguist
- Linguist
-
Runs the current QML file with QML utility.
Führt die aktuelle QML-Datei mit dem QML-Werkzeug aus.
@@ -20188,14 +20445,6 @@ konnte nicht unter Versionsverwaltung (%2) gestellt werden
QML utility
QML-Werkzeug
-
- Synchronizes translator's ts files with the program code
- Synchronisiert die ts-Dateien des Übersetzers mit dem Quelltext
-
-
- Update Translations (lupdate)
- Übersetzungen aktualisieren (lupdate)
-
Opens the current file in Notepad
Öffnet die aktuelle Datei im Editor
@@ -20302,6 +20551,10 @@ konnte nicht unter Versionsverwaltung (%2) gestellt werden
Failed to remove file "%1".
Die Datei "%1" konnte nicht gelöscht werden.
+
+ Failed to set permissions.
+ Dateizugriffsrechte konnten nicht gesetzt werden.
+
Unable to create the directory %1.
Das Verzeichnis %1 kann nicht erstellt werden.
@@ -20391,6 +20644,10 @@ konnte nicht unter Versionsverwaltung (%2) gestellt werden
Cannot reload %1
%1 konnte nicht neu geladen werden
+
+ Not implemented
+ Nicht implementiert
+
File was restored from auto-saved copy. Select Save to confirm or Revert to Saved to discard changes.
Die Datei wurde von einer Sicherheitskopie wiederhergestellt. Wählen Sie Speichern zur Bestätigung oder Wiederherstellen um die Änderungen zu verwerfen.
@@ -20399,6 +20656,26 @@ konnte nicht unter Versionsverwaltung (%2) gestellt werden
Open with VCS (%1)
Öffnen mittels Versionskontrollsystem (%1)
+
+ Version control state: added.
+ Status der Versionsverwaltung: hinzugefügt.
+
+
+ Version control state: modified.
+ Status der Versionsverwaltung: verändert.
+
+
+ Version control state: deleted.
+ Status der Versionsverwaltung: gelöscht.
+
+
+ Version control state: renamed.
+ Status der Versionsverwaltung: umbenannt.
+
+
+ Version control state: untracked.
+ Status der Versionsverwaltung: nicht enthalten.
+
Toggle Progress Details
Verlaufsdetails ein/ausschalten
@@ -20431,6 +20708,10 @@ konnte nicht unter Versionsverwaltung (%2) gestellt werden
Whole words o&nly
Nur ganze &Worte
+
+ Ignore binary files
+ Binärdateien ignorieren
+
Use re&gular expressions
Verwende ®uläre Ausdrücke
@@ -20927,6 +21208,26 @@ Möchten Sie es beenden?
Do not ask again.
Nicht erneut nachfragen.
+
+ Terms and Conditions
+ Bedingungen und Konditionen
+
+
+ Accept
+ Annehmen
+
+
+ Decline
+ Ablehnen
+
+
+ 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.
@@ -21064,8 +21365,8 @@ Sie werden wahrscheinlich auf weitere Probleme mit dieser Instanz von %3 stoßen
Bearbeiten > Einstellungen > Umgebung > System
- %1 uses Google Crashpad for collecting crashes and sending them to our backend for processing. Crashpad may capture arbitrary contents from crashed process’ memory, including user sensitive information, URLs, and whatever other content users have trusted %1 with. The collected crash reports are however only used for the sole purpose of fixing bugs.
- %1 nutzt Google Crashpad, um Absturzberichte zu sammeln und diese zur Verarbeitung an unsere Server zu senden. Crashpad kann beliebige Inhalte des Speichers des abgestürzten Prozesses erfassen. Dies beinhaltet persönliche Daten, URLs und welche Inhalte auch immer der Benutzer %1 anvertraut hat. Die gesammelten Absturzberichte werden allerdings nur zum Zweck der Fehlerbehebung genutzt.
+ %1 uses Google Crashpad for collecting crashes and sending them to Sentry for processing. Crashpad may capture arbitrary contents from crashed process’ memory, including user sensitive information, URLs, and whatever other content users have trusted %1 with. The collected crash reports are however only used for the sole purpose of fixing bugs.
+ %1 nutzt Google Crashpad, um Absturzberichte zu sammeln und diese zur Verarbeitung an Sentry zu senden. Crashpad kann beliebige Inhalte des Speichers des abgestürzten Prozesses erfassen. Dies beinhaltet persönliche Daten, URLs und welche Inhalte auch immer der Benutzer %1 anvertraut hat. Die gesammelten Absturzberichte werden allerdings nur zum Zweck der Fehlerbehebung genutzt.
More information:
@@ -21235,6 +21536,14 @@ Möchten Sie sie jetzt auschecken?
Alt+Right
Alt+Right
+
+ Open Previous Document
+ Vorhergehendes Dokument öffnen
+
+
+ Open Next Document
+ Nächstes Dokument öffnen
+
Reopen Last Closed Document
Zuletzt geschlossenes Dokument erneut öffnen
@@ -21557,6 +21866,10 @@ Möchten Sie sie jetzt auschecken?
provided they were unmodified before the refactoring.
Speichert automatisch alle geöffneten Dateien, die von der Refaktorisierung betroffen sind, sofern sie vorher unverändert waren.
+
+ Crash reports are saved in "%1".
+ Absturzberichte werden in "%1" gespeichert.
+
Crash Reporting
Absturzberichte
@@ -21877,6 +22190,18 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.
File does not exist.
Datei existiert nicht.
+
+ No plugins found.
+ Keine Plugins gefunden.
+
+
+ More than one plugin found.
+ Mehr als ein Plugin gefunden.
+
+
+ Plugin failed to resolve dependencies:
+ Plugin konnte Abhängigkeiten nicht auflösen:
+
Check Archive
Archiv überprüfen
@@ -21885,6 +22210,22 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.
Checking archive...
Überprüfe Archiv...
+
+ Load plugin immediately
+ Plugin sofort laden
+
+
+ %1 will be installed into %2.
+ %1 wird in %2 installiert.
+
+
+ Accept Terms and Conditions
+ Bedingungen und Konditionen annehmen
+
+
+ I accept the terms and conditions.
+ Ich nehme die Bedingungen und Konditionen an.
+
Canceled.
Abgebrochen.
@@ -21897,14 +22238,6 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.
Archive is OK.
Archiv ist OK.
-
- Plugin requires an incompatible version of %1 (%2).
- Das Plugin benötigt eine inkompatible Version von %1 (%2).
-
-
- Did not find %1 plugin.
- Konnte kein %1 Plugin finden.
-
Install Location
Installationsort
@@ -21933,10 +22266,6 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.
Summary
Zusammenfassung
-
- "%1" will be installed into "%2".
- "%1" wird in "%2" installiert.
-
Overwrite File
Datei überschreiben
@@ -22340,6 +22669,14 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.
Markdown Editor
Markdown-Editor
+
+ Secret storage is not available! Your values will be stored as plaintext in the settings!
+ Sicheres Speichern ist nicht verfügbar! Ihre Werte werden in den Einstellungen als Klartext gespeichert!
+
+
+ You can install libsecret or KWallet to enable secret storage.
+ Sie können libsecret oder KWallet installieren, um sicheres Speichern zu aktivieren.
+
QtC::CppEditor
@@ -24247,6 +24584,14 @@ Flags: %3
Re-order Member Function Definitions According to Declaration Order
Definitionen der Memberfunktionen entsprechend der Deklarationsreihenfolge anordnen
+
+ Invalid location for %1.
+ Ungültiger Pfad für %1.
+
+
+ Could not create "%1": %2
+ Konnte "%1" nicht erstellen: %2
+
QtC::Cppcheck
@@ -27026,6 +27371,10 @@ Sie werden möglicherweise gebeten, den Inhalt dieses Logs mitzuteilen, wenn Sie
Attach to Unstarted Application...
Debugge noch nicht gestartete Anwendung...
+
+ Load Last Core File
+ Letzte Core-Datei laden
+
Start and Break on Main
Starten und bei "main" anhalten
@@ -27163,6 +27512,14 @@ Sie werden möglicherweise gebeten, den Inhalt dieses Logs mitzuteilen, wenn Sie
Start Debugging of Startup Project
Projekt starten und debuggen
+
+ coredumpctl did not find any cores created by systemd-coredump.
+ coredumpctl hat keine von systemd-coredump erstellten Core-Dateien gefunden.
+
+
+ Last Core file "%1"
+ Letzte Core-Datei "%1"
+
Reload debugging helpers skipped as no engine is running.
Erneutes Laden der Ausgabe-Hilfsbibliothek wurde übersprungen, da keine Engine läuft.
@@ -27933,10 +28290,30 @@ Sie können hier eine andere Verbindung wählen, beispielsweise eine serielle Ve
Python commands entered here will be executed after built-in debugging helpers have been loaded and fully initialized. You can load additional debugging helpers or modify existing ones here.
Hier angegebene Python-Kommandos werden ausgeführt, nachdem die integrierte Ausgabe-Hilfsbibliothek geladen und vollständig initialisiert wurde. Sie können hier weitere Ausgabehelfer laden oder bereits existierende Ausgabehelfer ändern.
+
+ Show warnings for unsupported breakpoints
+ Warnungen für nicht unterstützte Haltepunkte anzeigen
+
+
+ Shows a warning on debugger start-up when breakpoints are requested which are not supported by the selected debugger engine.
+ Zeigt beim Start des Debuggers eine Warnung an, wenn Haltepunkte angefordert werden, die nicht von der gewählten Debugger-Engine unterstützt werden.
+
Behavior
Verhalten
+
+ User Interface
+ Benutzeroberfläche
+
+
+ When Debugging Stops
+ Wenn das Debuggen beendet wird
+
+
+ Allow inferior calls in debugging helper
+ Aufrufe von der Ausgabe-Hilfsbibliothek in den zu debuggenden Prozess erlauben
+
Extra Debugging Helpers
Zusätzliche Ausgabe-Hilfsbibliotheken
@@ -27965,10 +28342,6 @@ Sie können hier eine andere Verbindung wählen, beispielsweise eine serielle Ve
No valid expression
Kein gültiger Ausdruck
-
- %1 (Restored)
- %1 (Wiederhergestellt)
-
Expression too complex
Ausdruck zu komplex
@@ -28849,6 +29222,14 @@ Das Setzen von Haltepunkten anhand von Dateinamen und Zeilennummern könnte fehl
Always adds a breakpoint on the <i>%1()</i> function.
Fügt bei der Funktion <i>%1()</i> stets einen Haltepunkt ein.
+
+ Invalid debugger command
+ Ungültiges Debugger-Kommando
+
+
+ Invalid working directory
+ Ungültiges Arbeitsverzeichnis
+
Type of Debugger Backend
Typ des Debugger-Backends
@@ -29632,6 +30013,10 @@ Versuchen Sie, das Projekt neu zu erstellen.
Docker
Docker
+
+ Failed starting Docker container. Exit code: %1, output: %2
+ Docker-Container konnte nicht gestartet werden. Rückgabewert: %1, Ausgabe: %2
+
Docker Image "%1" (%2)
Docker Image "%1" (%2)
@@ -29692,15 +30077,6 @@ 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.
-
- Docker daemon appears to be not running. Verify daemon is up and running and reset the Docker daemon in Docker device preferences or restart %1.
- %1 is the application name (Qt Creator)
- Der Docker-Daemon scheint nicht zu laufen. Stellen Sie sicher, dass der Daemon ausgeführt wird, und setzen Sie den Docker-Daemon in den Einstellungen des Docker-Geräts zurück oder starten Sie %1 neu.
-
-
- Failed to create container shell (Out of memory).
- Container-Shell konnte nicht erstellt werden (nicht genügend Speicherplatz).
-
Device is shut down
Das Gerät ist heruntergefahren
@@ -29745,6 +30121,14 @@ Versuchen Sie, das Projekt neu zu erstellen.
Docker Device
Docker-Gerät
+
+ Failed to inspect image: %1
+ Untersuchung des Images fehlgeschlagen: %1
+
+
+ Could not parse image inspect output: %1
+ Die Ausgabe von image inspect konnte nicht ausgewertet werden: %1
+
localSource: No mount point found for %1
localSource: Kein Einhängepunkt für %1 gefunden
@@ -29971,24 +30355,13 @@ Versuchen Sie, das Projekt neu zu erstellen.
Extensions
Erweiterungen
-
- More information
- Mehr Informationen
-
Extension details
Erweiterungsdetails
-
- Pack contains %n plugins.
-
- Paket enthält ein Plugin.
- Paket enthält %n Plugins.
-
-
- Load on start
- Beim Start laden
+ Active
+ Aktiv
Restart Now
@@ -30006,6 +30379,18 @@ Versuchen Sie, das Projekt neu zu erstellen.
Not loaded
Nicht geladen
+
+ No details to show
+ Keine Details verfügbar
+
+
+ Select an extension to see more information about it.
+ Wählen Sie eine Erweiterung aus, um Informationen darüber anzuzeigen.
+
+
+ Last Update
+ Letzte Aktualisierung
+
Tags
Tags
@@ -30046,6 +30431,34 @@ Versuchen Sie, das Projekt neu zu erstellen.
Code: %1.
Code: %1.
+
+ Inactive
+ Inaktiv
+
+
+ Last updated
+ Zuletzt aktualisiert
+
+
+ Name
+ Name
+
+
+ All
+ Alle
+
+
+ Extension packs
+ Erweiterungspakete
+
+
+ Individual extensions
+ Einzelne Erweiterungen
+
+
+ No extension found!
+ Keine Erweiterungen gefunden!
+
Manage Extensions
Erweiterungen verwalten
@@ -30054,6 +30467,14 @@ Versuchen Sie, das Projekt neu zu erstellen.
Search
Suche
+
+ Filter by: %1
+ Filtern nach: %1
+
+
+ Sort by: %1
+ Sortieren nach: %1
+
Install...
Installieren...
@@ -30063,8 +30484,44 @@ Versuchen Sie, das Projekt neu zu erstellen.
Externes Repository benutzen
- Repository: %1
- Repository: %1
+ Server URL:
+ Server-URL:
+
+
+ Note
+ Hinweis
+
+
+ %1 does not check extensions from external vendors for security flaws or malicious intent, so be careful when installing them, as it might leave your computer vulnerable to attacks such as hacking, malware, and phishing.
+ %1 überprüft keine Erweiterungen von externen Anbietern auf Sicherheitsprobleme oder böswillige Absichten. Seien Sie deshalb vorsichtig beim Installieren solcher Erweiterungen, da sie Ihren Computer für Angriffe wie Hacking, Schadsoftware und Phishing anfällig machen könnten.
+
+
+ Use External Repository
+ Externes Repository benutzen
+
+
+ Install Extension...
+ Erweiterung installieren...
+
+
+ Plugin changes will take effect after restart.
+ Änderungen der Plugins werden nach einem Neustart wirksam.
+
+
+ Browser
+ Browser
+
+
+ Documentation
+ Dokumentation
+
+
+ More Information
+ Mehr Informationen
+
+
+ New
+ Neu
@@ -30077,10 +30534,18 @@ Versuchen Sie, das Projekt neu zu erstellen.
Version:
Version:
+
+ Vendor Id:
+ Anbieter-ID:
+
Vendor:
Anbieter:
+
+ Documentation:
+ Dokumentation:
+
Location:
Pfad:
@@ -30113,6 +30578,10 @@ Versuchen Sie, das Projekt neu zu erstellen.
Group:
Gruppe:
+
+ Id:
+ ID:
+
Compatibility version:
Kompatibel zu Version:
@@ -30239,6 +30708,14 @@ Reason: %3
Das Plugin kann nicht geladen werden, weil eine Abhängigkeit nicht geladen werden konnte: %1 (%2)
Grund: %3
+
+ No callback set to accept terms and conditions
+ Es ist kein Callback für das Annehmen von Bedingungen gesetzt
+
+
+ You did not accept the terms and conditions
+ Sie haben die Bedingungen nicht angenommen
+
Cannot load plugin because dependency failed to load: %1(%2)
Reason: %3
@@ -30305,6 +30782,14 @@ Grund: %3
Expected IID "%1", but found "%2"
IID "%1" erwartet, aber "%2" gefunden
+
+ Plugin id "%1" must be lowercase
+ Plugin-ID "%1" muss kleingeschrieben sein
+
+
+ Terms and conditions: %1
+ Bedingungen: %1
+
Resolving dependencies failed because state != Read
Das Bestimmen der Abhängigkeiten schlug fehl, weil der Status != Gelesen ist
@@ -30377,6 +30862,14 @@ Grund: %3
Load on Startup
Beim Start laden
+
+ deprecated
+ veraltet
+
+
+ experimental
+ experimentell
+
Utilities
Hilfsmittel
@@ -30385,16 +30878,6 @@ Grund: %3
Plugin is not available on this platform.
Plugin ist auf dieser Plattform nicht verfügbar.
-
- %1 (deprecated)
- %1 is a plugin name
- %1 (veraltet)
-
-
- %1 (experimental)
- %1 is a plugin name
- %1 (experimentell)
-
Path: %1
Plugin is not available on this platform.
@@ -31663,6 +32146,14 @@ 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
+
Git Diff "%1"
Git Diff "%1"
@@ -31726,7 +32217,7 @@ Jetzt Commit ausführen?
Cannot find parent revisions of "%1" in "%2": %3
- Failed to find parent revisions of a SHA1 for "annotate previous"
+ Failed to find parent revisions of a hash for "annotate previous"
Die übergeordnete Revision von "%1" im Repository "%2" konnte nicht bestimmt werden: %3
@@ -32256,6 +32747,14 @@ wenn es außerhalb von git bash aufgerufen wird.
Finds the commit that introduced the line before it was moved.
Findet den Commit, der die Zeile eingeführt hat, bevor sie bewegt wurde.
+
+ Show commit subject
+ Titel des Commits anzeigen
+
+
+ Adds the commit subject directly to the annotation.
+ Fügt den Titel des Commits direkt zur Annotation hinzu.
+
Ignore whitespace changes
Änderungen der Leerzeichen ignorieren
@@ -32489,12 +32988,12 @@ wenn es außerhalb von git bash aufgerufen wird.
Änderungen
- &Query:
- &Abfrage:
+ Change #, hash, tr:id, owner:email or reviewer:email
+ Änderungs-#, Hash, tr:id, owner:email oder reviewer:email
- Change #, SHA-1, tr:id, owner:email or reviewer:email
- Change #, SHA-1, tr:id, owner:email or reviewer:email
+ &Query:
+ &Abfrage:
Details
@@ -32918,12 +33417,12 @@ Nicht markiert - Die Änderung ist kein Entwurf.
Hard
- Soft
- Soft
+ Hash
+ Hash
- Sha1
- Sha1
+ Soft
+ Soft
Refreshing Commit Data
@@ -33204,6 +33703,24 @@ 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
+
+
+ Alt+G,Alt+S
+ Alt+G,Alt+S
+
Meta+G,Meta+B
Meta+G,Meta+B
@@ -33260,10 +33777,6 @@ Leer lassen, um das Dateisystem zu durchsuchen.
Alt+G,Alt+U
Alt+G,Alt+U
-
- Current &Project
- Aktuelles &Projekt
-
Meta+G,Meta+Shift+D
Meta+G,Meta+Shift+D
@@ -33284,6 +33797,40 @@ Leer lassen, um das Dateisystem zu durchsuchen.
&Local Repository
&Lokales Repository
+
+ 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
@@ -33420,36 +33967,6 @@ Leer lassen, um das Dateisystem zu durchsuchen.
Alt+G,Alt+I
Alt+G,Alt+I
-
- Diff Current Project
- Avoid translating "Diff"
- Diff für aktuelles Projekt
-
-
- Diff Project "%1"
- Avoid translating "Diff"
- Diff für Projekt "%1"
-
-
- Log Project
- Avoid translating "Log"
- Log für Projekt
-
-
- Log Project "%1"
- Avoid translating "Log"
- Log für Projekt "%1"
-
-
- Clean Project...
- Avoid translating "Clean"
- Projekt bereinigen...
-
-
- Clean Project "%1"...
- Avoid translating "Clean"
- Projekt "%1" bereinigen...
-
Amend Last Commit...
Avoid translating "Commit"
@@ -35015,10 +35532,6 @@ Möchten Sie sie überschreiben?
Deployment failed.
Deployment fehlgeschlagen.
-
- The Info.plist might be incorrect.
- Die Info.plist ist möglicherweise fehlerhaft.
-
Deployment canceled.
Deployment abgebrochen.
@@ -35425,10 +35938,6 @@ Ablaufdatum: %3
Invalid Empty UDID.
Ungültige leere UDID.
-
- Failed to start simulator app.
- Simulator-Anwendung konnte nicht gestartet werden.
-
Simulator device is not available. (%1)
Simulator-Gerät ist nicht verfügbar. (%1)
@@ -35839,6 +36348,10 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan
Server Capabilities
Server-Fähigkeiten
+
+ No client selected
+ Kein Client ausgewählt
+
Language Client Inspector
Language Client Inspektor
@@ -35851,6 +36364,10 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan
Language Server:
Language Server:
+
+ Send message
+ Nachricht senden
+
Log
Log
@@ -36048,10 +36565,42 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan
Extension info table did not contain a setup function.
Informationstabelle der Erweiterung enthält keine Setup-Funktion.
+
+ Lua
+ Lua
+
+
+ New Script...
+ Neues Skript...
+
+
+ Scripting
+ Skripten
+
+
+ Run Current Script
+ Aktuelles Skript ausführen
+
Failed to load plugin %1: %2
Laden des Plugins %1 ist fehlgeschlagen: %2
+
+ Run script "%1"
+ Skript "%1" ausführen
+
+
+ Run
+ Ausführen
+
+
+ Edit
+ Bearbeiten
+
+
+ Failed to read script "%1": %2
+ Das Lesen des Skripts "%1" ist fehlgeschlagen: %2
+
Cannot prepare extension setup: %1
Setup der Erweiterung kann nicht vorbereitet werden: %1
@@ -36064,6 +36613,14 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan
Extension setup function returned error: %1
Die Setup-Funktion der Erweiterung hat einen Fehler zurückgeliefert: %1
+
+ Evaluate simple Lua statements.<br>Literal '}' characters must be escaped as "\}", '\' characters must be escaped as "\\", '#' characters must be escaped as "\#", and "%{" must be escaped as "%\{".
+ Einfache Lua-Ausdrücke auswerten.<br>'}'-Zeichen müssen als "\}" maskiert werden, '\'-Zeichen müssen als "\\" maskiert werden, '#'-Zeichen müssen als "\#" maskiert werden, und "%{" muss als "%\{" maskiert werden.
+
+
+ No Lua statement to evaluate.
+ Kein auszuwertender Lua-Ausdruck
+
QtC::Macros
@@ -36639,7 +37196,7 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan
Remove
-
+ Entfernen
Read about Using QtMCUs in the Qt Design Studio
@@ -37572,10 +38129,6 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt
Nim compiler does not exist.
Der Nim-Compiler existiert nicht.
-
- &Compiler path:
- &Compiler-Pfad:
-
&Compiler version:
&Compiler-Version:
@@ -38672,6 +39225,14 @@ Weitere Erklärungen sind möglicherweise in "Ausgabe der Anwendung" z
This would create a circular dependency.
Dadurch würde eine zirkuläre Abhängigkeit entstehen.
+
+ Deploy dependencies
+ Deployment für Abhängigkeiten durchführen
+
+
+ Do not just build dependencies, but deploy them as well.
+ Abhängigkeiten nicht nur bauen, sondern auch Deployment für sie durchführen.
+
Configuration is faulty. Check the Issues view for details.
Die Konfiguration ist fehlerhaft. Details befinden sich in der Ansicht "Probleme".
@@ -38974,6 +39535,14 @@ Außer: %2
O
K
+
+ Discarded excessive compile output.
+ Übermäßige Ausgaben der Kompilierung wurden verworfen.
+
+
+ Discards compile output that continuously comes in faster than it can be handled.
+ Verwirft Ausgaben der Kompilierung, die beständig schneller angefordert werden als sie behandelt werden können.
+
Files in Current Project
Dateien im aktuellen Projekt
@@ -39055,6 +39624,7 @@ konnte dem Projekt "%2" nicht hinzugefügt werden.
Projects
+ title in expanded session items in welcome mode
Projekte
@@ -39326,6 +39896,10 @@ Title of a the cloned RunConfiguration window, text of the window
Open File
Datei öffnen
+
+ VCS Log Directory
+ VCS Log-Verzeichnis
+
Close Project
Projekt schließen
@@ -39616,6 +40190,14 @@ Bitte versuchen Sie es erneut.
Duplicate File...
Datei duplizieren...
+
+ Create Header File
+ Header-Datei erstellen
+
+
+ Create Source File
+ Quelldatei erstellen
+
Expand
Aufklappen
@@ -39674,6 +40256,18 @@ Bitte versuchen Sie es erneut.
<h3>Project already open</h3>
<h3>Projekt bereits geöffnet</h3>
+
+ The following files could not be renamed: %1
+ Die folgenden Dateien konnten nicht umbenannt werden: %1
+
+
+ The following files were renamed, but their project files could not be updated accordingly: %1
+ Die folgenden Dateien wurden umbenannt, aber ihre Projektdateien konnten nicht entsprechend aktualisiert werden: %1
+
+
+ Renaming Did Not Fully Succeed
+ Das Umbennenen war nicht vollständig erfolgreich
+
Open Project in "%1"
Projekt in "%1" öffnen
@@ -39732,6 +40326,10 @@ Bitte versuchen Sie es erneut.
Terminal konnte nicht geöffnet werden.
%1
+
+ %1 Log Directory
+ %1 Log des Verzeichnisses
+
Locates files from all project directories. Append "+<number>" or ":<number>" to jump to the given line number. Append another "+<number>" or ":<number>" to jump to the column number as well.
Findet Dateien in allen Projektverzeichnissen. Fügen Sie "+<Zahl>" oder ":<Zahl>" an, um zur angegebenen Zeile zu springen. Fügen Sie erneut "+<Zahl>" oder ":<Zahl>" an, um auch zur angegebenen Spalte zu springen.
@@ -39805,14 +40403,6 @@ Bitte versuchen Sie es erneut.
Delete %1 from file system?
Soll die Datei "%1" gelöscht werden?
-
- The file %1 could not be renamed %2.
- Die Datei %1 konnte nicht in %2 umbenannt werden.
-
-
- Cannot Rename File
- Die Datei konnte nicht umbenannt werden
-
Switched run configuration to
%1
@@ -39945,18 +40535,6 @@ Bitte versuchen Sie es erneut.
Project Editing Failed
Das Bearbeiten des Projekts schlug fehl
-
- The project file %1 cannot be automatically changed.
-
-Rename %2 to %3 anyway?
- Die Projektdatei %1 kann nicht automatisch geändert werden.
-
-%2 trotzdem in %3 umbenennen?
-
-
- The file %1 was renamed to %2, but the project file %3 could not be automatically changed.
- Die Datei %1 wurde in %2 umbenannt, aber die Projektdatei %3 konnte nicht automatisch geändert werden.
-
Could not delete file %1.
Die Datei "%1" konnte nicht gelöscht werden.
@@ -40406,10 +40984,6 @@ The name of the build configuration created by default for a generic project.&Keep Running
&Fortsetzen
-
- Remote process did not finish in time. Connectivity lost?
- Der entfernte Prozess wurde nicht rechtzeitig beendet. Verbindung verloren?
-
Starting %1...
Starte %1...
@@ -40470,10 +41044,6 @@ The name of the build configuration created by default for a generic project.Stop monitoring task files.
Überwachung von Aufgabendateien beenden.
-
- &Compiler path:
- &Compiler-Pfad:
-
Platform codegen flags:
Plattformspezifische Optionen für codegen:
@@ -40499,12 +41069,12 @@ The name of the build configuration created by default for a generic project.<nobr><b>ABI:</b> %1
- This toolchain is invalid.
- Diese Toolchain ist ungültig.
+ Not all compilers are set up correctly.
+ Nicht alle Compiler sind richtig konfiguriert.
- not up-to-date
- nicht aktuell
+ This toolchain is invalid.
+ Diese Toolchain ist ungültig.
Toolchain Auto-detection Settings
@@ -41195,6 +41765,18 @@ Bitte schließen Sie alle laufenden Instanzen Ihrer Anwendung vor dem Erstellen.
DebugBreakProcess failed:
DebugBreakProcess schlug fehl:
+
+ %1 does not exist. If you built %2 yourself, check out https://code.qt.io/cgit/qt-creator/binary-artifacts.git/.
+ %1 existiert nicht. Wenn Sie %2 selbst gebaut haben, checken Sie https://code.qt.io/cgit/qt-creator/binary-artifacts.git/ aus.
+
+
+ Cannot start %1. Check src\tools\win64interrupt\win64interrupt.c for more information.
+ %1 konnte nicht gestartet werden. Weitere Informationen finden Sie in src\tools\win64interrupt\win64interrupt.c.
+
+
+ could not break the process.
+ konnte den Prozess nicht unterbrechen.
+
Cannot kill process with pid %1: %2
Der Prozess mit der PID %1 konnte nicht beendet werden: %2
@@ -41623,14 +42205,6 @@ To develop a full application, create a Qt Quick Application project instead.Erstellt ein Qt Quick UI-Projekt für Vorschauen und Design-Prototypen.
Für vollständige Anwendungen erstellen Sie stattdessen eine Qt Quick-Anwendung.
-
-
- 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.
- Erstellt eine Qt Quick-Anwendung, die aus QML- und C++-Code bestehen kann. Unterstützt das Erstellen und Deployment der Anwendung für Desktop, Embedded und Mobile Zielplattformen.
-
-Wahlweise können Sie ein Projekt erstellen, das in Qt Design Studio geöffnet werden kann, welches einen visuellen Editor für Qt Quick-Benutzeroberflächen enthält.
Qt Quick Application
@@ -41660,6 +42234,10 @@ Wahlweise können Sie ein Projekt erstellen, das in Qt Design Studio geöffnet w
Boost install directory (optional):
Boost-Installationsverzeichnis (optional):
+
+ 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.
+ Erstellt eine Qt Quick-Anwendung, die sowohl QML-Code als auch C++-Code enthalten kann. Sie können die Anwendung bauen und auf dem Desktop, Embedded Plattformen und Mobilplattformen bereitstellen.
+
Creates a QML file with boilerplate code, starting with "import QtQuick".
Erzeugt eine QML-Datei mit allgemeingültigem Quelltext, beginnend mit "import QtQuick".
@@ -42074,10 +42652,6 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.Creates a custom Qt Creator plugin.
Erzeugt ein benutzerdefiniertes Qt Creator-Plugin.
-
- Qt Creator Plugin
- Qt Creator-Plugin
-
Add Q_OBJECT
Q_OBJECT einfügen
@@ -42206,10 +42780,18 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.PySide 6
PySide 6
+
+ Qt Creator C++ Plugin
+ Qt Creator C++-Plugin
+
Include QQuickItem
QQuickItem einbinden
+
+ CMake for Qt 6.5 and Later
+ CMake für Qt 6.5 und neuer
+
Qt 6.2
Qt 6.2
@@ -42222,6 +42804,14 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.Create example project
Beispielprojekt erzeugen
+
+ Create a project that you can open in Qt Design Studio
+ Ein Projekt erstellen, das in Qt Design Studio geöffnet werden kann
+
+
+ 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.
+ Erstellt ein Projekt mit einer Struktur, die sowohl mit Qt Design Studio als auch Qt Creator kompatibel ist. Es enthalt ein .ui.qml-Formular, dass Sie in Qt Design Studio visuell bearbeiten können.
+
Binary
Binärdatei
@@ -42322,14 +42912,6 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.Nimble Application
Nimble-Anwendung
-
- Creates a project that you can open in Qt Design Studio
- Erstellt ein Projekt, das in Qt Design Studio geöffnet werden kann
-
-
- 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.
- Erstellt ein Projekt mit einer Struktur, die sowohl mit Qt Design Studio (via qmlproject) als auch mit Qt Creator (via CMakeLists.txt) kompatibel ist. Es enthält ein .ui.qml-Formular, das in Qt Design Studio visuell bearbeitet werden kann.
-
Qt 6.4
Qt 6.4
@@ -42338,10 +42920,6 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.Qt 6.5
Qt 6.5
-
- The minimum version of Qt you want to build the application for
- Die niedrigste Qt-Version, die Sie zum Bauen der Anwendung verwenden wollen
-
This wizard creates a simple unit test project using Boost.
Dieser Assistent erstellt ein einfaches Unit-Test-Projekt mit Boost.
@@ -42914,6 +43492,10 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.Failed to Add to Project
Konnte nicht zu Projekt hinzufügen
+
+ Subproject "%1" outside of "%2".
+ Unterprojekt "%1" befindet sich außerhalb von "%2".
+
Generator is not a object.
Generator ist kein Objekt.
@@ -43234,6 +43816,10 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.<b>Warning:</b> This file is generated.
<b>Warnung:</b> Diese Datei wurde generiert.
+
+ <b>Warning:</b> This file is inside the build directory.
+ <b>Warnung:</b> Diese Datei befindet sich innerhalb des Build-Verzeichnisses.
+
<b>Warning:</b> This file is outside the project directory.
<b>Warnung:</b> Diese Datei befindet sich außerhalb des Projektverzeichnisses.
@@ -43452,6 +44038,22 @@ Sie werden erhalten.
The process crashed.
Der Prozess ist abgestürzt.
+
+ Requesting process to stop ....
+ Fordere den Prozess zum Anhalten auf ....
+
+
+ Stopping process forcefully ....
+ Erzwinge den Stopp des Prozesses ....
+
+
+ Process unexpectedly did not finish.
+ Der Prozess hat sich unerwarteterweise nicht beendet.
+
+
+ Connectivity lost?
+ Verbindung verloren?
+
An error occurred when attempting to write to the process. For example, the process may not be running, or it may have closed its input channel.
Ein Fehler trat beim Versuch zum Prozess zu schreiben auf. Möglicherweise läuft der Prozess nicht oder hat seinen Eingabekanal geschlossen.
@@ -43520,10 +44122,6 @@ Sie werden erhalten.
Copy Steps From Another Kit...
Schritte aus einem anderen Kit kopieren...
-
- Enable Kit
- Kit aktivieren
-
No kit defined in this project.
In diesem Projekt ist kein Kit festgelegt.
@@ -43689,10 +44287,6 @@ Was soll %1 tun?
X11 Forwarding:
X11-Weiterleitung:
-
- Forward to local display
- Auf lokalen Bildschirm weiterleiten
-
Make arguments:
Kommandozeilenargumente für make:
@@ -43819,6 +44413,14 @@ Was soll %1 tun?
Word-wrap output
Ausgabe umbrechen
+
+ Discard excessive output
+ Übermäßige Ausgaben verwerfen
+
+
+ If this option is enabled, application output will be discarded if it continuously comes in faster than it can be handled.
+ Wenn diese Einstellung aktiviert ist, werden Ausgaben der Anwendung verworfen, die beständig schneller angefordert werden als sie behandelt werden können.
+
Clear old output on a new run
Alte Ausgabe bei erneutem Start leeren
@@ -43939,10 +44541,6 @@ Was soll %1 tun?
Sys Root
Sys Root
-
- <No compiler>
- <Kein Compiler>
-
Compiler
Compiler
@@ -44287,6 +44885,7 @@ Was soll %1 tun?
Files
+ title in expanded session items in welcome mode
Dateien
@@ -44521,10 +45120,6 @@ fails because Clang does not understand the target architecture.
Cannot retrieve debugging output.
Es konnte keine Debug-Ausgabe erhalten werden.
-
- User requested stop. Shutting down...
- Abbruch auf Benutzeranforderung...
-
Cannot run: No command given.
Keine Ausführung möglich: Kein Kommando angegeben.
@@ -44533,10 +45128,6 @@ fails because Clang does not understand the target architecture.
%1 exited with code %2
%1 wurde mit dem Rückgabewert %2 beendet
-
- %1 crashed.
- %1 ist abgestürzt.
-
The process was ended forcefully.
Der Prozess wurde gestoppt.
@@ -44605,8 +45196,12 @@ fails because Clang does not understand the target architecture.
nicht verfügbar
- You can edit this configuration inside the .qtcreator/project.json file.
- Sie können diese Konfiguration über die Datei ".qtcreator/project.json" bearbeiten.
+ Clone the configuration to change it. Or, make the changes in the .qtcreator/project.json file.
+ Klonen Sie die Konfiguration, um sie zu ändern. Oder führen Sie die Änderungen in der .qtcreator/project.json-Datei durch.
+
+
+ Workspace Manager
+ Workspace-Manager
Exclude from Project
@@ -44616,6 +45211,40 @@ fails because Clang does not understand the target architecture.
Rescan Workspace
Workspace erneut durchsuchen
+
+ You will need at least one port for QML debugging.
+ Sie werden mindestens einen Port für das QML-Debuggen benötigen.
+
+
+ Machine type:
+ Gerätetyp:
+
+
+ Physical Device
+ Physisches Gerät
+
+
+ Free ports:
+ Freie Ports:
+
+
+ %1 at "%2"
+ toolchain 'name' at 'path'
+ %1 in "%2"
+
+
+ &Compiler path
+ &Compiler-Pfad
+
+
+ %1 compiler path
+ %1 = programming language
+ %1 Compiler-Pfad
+
+
+ Provide manually
+ Manuell bestimmen
+
QtC::Python
@@ -45243,8 +45872,14 @@ fails because Clang does not understand the target architecture.
Ändern...
- Additional Qbs Profile Settings
- Zusätzliche Qbs-Profileinstellungen
+ Qbs Profile Additions
+ Ergänzungen zum Qbs-Profil
+
+
+ Additional module properties to set in the Qbs profile corresponding to this kit.
+You will rarely need to do this.
+ Zusätzliche Moduleigenschaften, die im Qbs-Profil des entsprechenden Kits gesetzt werden sollen.
+Dies ist selten nötig.
Qbs files
@@ -46083,6 +46718,10 @@ Weder der Pfad zur Bibliothek noch der Pfad zu den Headerdateien wird zur .pro-D
%1 error message
%1 Der Build wird überschrieben.
+
+ Starting qmake failed with the following error: %1
+ Das Starten von qmake ist mit folgendem Fehler fehlgeschlagen: %1
+
The build directory should be at the same level as the source directory.
Das Build-Verzeichnis sollte sich auf der Ebene des Quellverzeichnisses befinden.
@@ -47012,8 +47651,8 @@ Weitere Informationen finden Sie auf der Dokumentationsseite "Checking Code
Dieser Typ (%1) wird von UI-Dateien (.ui.qml) nicht unterstützt.
- Functions are not supported in a UI file (.ui.qml).
- Funktionen werden von UI-Dateien (.ui.qml) nicht unterstützt.
+ A when condition cannot contain an object.
+ Eine "when"-Bedingung kann kein Objekt enthalten.
JavaScript blocks are not supported in a UI file (.ui.qml).
@@ -47063,6 +47702,10 @@ Weitere Informationen finden Sie auf der Dokumentationsseite "Checking Code
JavaScript can break the visual tooling in Qt Design Studio.
JavaScript kann das visuelle Tooling in Qt Design Studio stören.
+
+ Arbitrary functions and function calls outside of a Connections object are not supported in a UI file (.ui.qml).
+ Beliebige Funktionen und Funktionsaufrufe außerhalb des Connections-Objektes werden in einer UI-Datei (.ui.qml) nicht unterstützt.
+
Duplicate import (%1).
Doppelter Import (%1).
@@ -47472,6 +48115,10 @@ Sie können eine Annotation "// @uri My.Module.Uri" hinzufügen, um de
Use customized static analyzer
Angepasste statische Analyse verwenden
+
+ Enable semantic highlighting (experimental)
+ Semantische Hervorhebung aktivieren (experimentell)
+
Enabled
Aktiviert
@@ -47492,6 +48139,14 @@ 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
+
Open .ui.qml files with:
.ui.qml-Dateien öffnen mit:
@@ -48680,10 +49335,6 @@ Speichern fehlgeschlagen.
Export Project
Projekt exportieren
-
- Enable Automatic CMake Generation
- Automatische CMake-Erstellung aktivieren
-
Use MultiLanguage in 2D view
MultiLanguage in der 2D-Ansicht verwenden
@@ -48786,6 +49437,10 @@ Sind Sie sicher?
Qt for MCUs Deploy Step
Qt for MCUs Deployment-Schritt
+
+ Enable CMake Generator
+ CMake-Generator aktivieren
+
QtC::Qnx
@@ -48850,10 +49505,6 @@ Sind Sie sicher?
Cannot show slog2info output. Error: %1
Die Ausgabe des Kommandos slog2info kann nicht angezeigt werden. Fehler: %1
-
- &Compiler path:
- &Compiler-Pfad:
-
SDP path:
SDP refers to 'Software Development Platform'.
@@ -49232,6 +49883,14 @@ wirklich entfernen?
Display Name is not unique.
Der Anzeigename ist nicht einmalig.
+
+ Error
+ Fehler
+
+
+ Warning
+ Warnung
+
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.
@@ -49356,10 +50015,6 @@ wirklich entfernen?
Qt Class Generation
Qt-Klassenerzeugung
-
- %1 (invalid)
- %1 (ungültig)
-
Link with Qt
Mit Qt verknüpfen
@@ -50194,10 +50849,6 @@ Der Steuerprozess konnte nicht gestartet werden.
Can't send control signal to the %1 device. The device might have been disconnected.
Senden des Steuersignals zum Gerät %1 ist fehlgeschlagen. Das Gerät ist möglicherweise nicht verbunden.
-
- Device "%1" is disconnected.
- Gerät "%1" ist nicht verbunden.
-
Remote Linux
Entferntes Linuxgerät
@@ -50243,6 +50894,10 @@ Der Steuerprozess konnte nicht gestartet werden.
Remote Linux Device
Entferntes Linuxgerät
+
+ The process crashed.
+ Der Prozess ist abgestürzt.
+
"%1" failed to start: %2
"%1" konnte nicht gestartet werden: %2
@@ -51587,93 +52242,6 @@ 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 neue Sitzung auf %1...
-
-
- Session finished on %1.
- Sitzung auf %1 beendet.
-
-
- Session paused...
- Sitzung pausiert...
-
-
- No Port
- Kein Port
-
-
- Serial port error: %1 (%2)
- Fehler des seriellen Ports: %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 zum Senden.
-
-
- Serial Terminal Window
- Serielles Terminal-Fenster
-
-
- Connect
- Verbinden
-
-
- Disconnect
- Trennen
-
-
- Reset Board
- Board zurücksetzen
-
-
- Add New Terminal
- Neues Terminal hinzufügen
-
-
- Serial Terminal
- Serielles Terminal
-
-
- None
- Keine
-
-
- LF
- LF
-
-
- CR
- CR
-
-
- CRLF
- CRLF
-
-
QtC::SilverSearcher
@@ -52491,10 +53059,6 @@ Die Datei "%1" konnte nicht geöffnet werden.
Alt+S,Alt+A
Alt+S,Alt+A
-
- Diff Project
- Diff für Projekt
-
Diff Current File
Diff für Datei
@@ -52539,26 +53103,50 @@ Die Datei "%1" konnte nicht geöffnet werden.
Annotate "%1"
Annotation für "%1"
+
+ Diff Project Directory
+ Diff des Projektverzeichnisses
+
+
+ Diff Directory of Project "%1"
+ Diff des Projektverzeichnisses von "%1"
+
+
+ Project Directory Status
+ Status des Projektverzeichnisses
+
+
+ Status of Directory of Project "%1"
+ Status des Projektverzeichnisses von "%1"
+
+
+ Log Project Directory
+ Log des Projektverzeichnisses
+
+
+ Log Directory of Project "%1"
+ Log des Projektverzeichnisses von "%1"
+
+
+ Update Project Directory
+ Projektverzeichnis aktualisieren
+
+
+ Update Directory of Project "%1"
+ Projektverzeichnis von "%1" aktualisieren
+
+
+ Commit Project Directory
+ Commit des Projektverzeichnisses
+
+
+ Commit Directory of Project "%1"
+ Commit des Projektverzeichnisses von "%1"
+
Describe...
Beschreibung zu...
-
- Project Status
- Status des Projekts (status)
-
-
- Update Project
- Projekt auf aktuellen Stand bringen
-
-
- Commit Project
- Commit des Projekts
-
-
- Commit Project "%1"
- Commit des Projekts "%1"
-
Diff Repository
Diff des Repositorys
@@ -52615,26 +53203,6 @@ Die Datei "%1" konnte nicht geöffnet werden.
Revert "%1"...
Änderungen in "%1" rückgängig machen...
-
- Diff Project "%1"
- Diff für Projekt "%1"
-
-
- Status of Project "%1"
- Status des Projekts "%1"
-
-
- Log Project "%1"
- Log für Projekt "%1"
-
-
- Log Project
- Log für Projekt
-
-
- Update Project "%1"
- Projekt "%1" auf aktuellen Stand bringen
-
Revert Repository...
Änderungen im gesamten Repository rückgängig machen...
@@ -53093,6 +53661,22 @@ Die Datei "%1" konnte nicht geöffnet werden.
Edit Bookmark
Lesezeichen bearbeiten
+
+ Ctrl+Alt+.
+
+
+
+ Ctrl+Alt+,
+
+
+
+ Sort by Filenames
+
+
+
+ Ctrl+Alt+P
+
+
Alt+Meta+M
Alt+Meta+M
@@ -54324,6 +54908,22 @@ Bestimmt das Verhalten bezüglich der Einrückung von Fortsetzungszeilen.
Snippet Parse Error
Fehler beim Lesen des Snippets
+
+ Fold Recursively
+
+
+
+ Fold All
+
+
+
+ Unfold Recursively
+
+
+
+ Unfold All
+
+
Zoom: %1%
Vergrößerung: %1%
@@ -55460,6 +56060,14 @@ Um den Stil von benutzerdefinierten Operatoren festzulegen, verwenden Sie "
Labels for goto statements.
Sprungmarken für goto-Befehle.
+
+ Attribute
+
+
+
+ Attributes.
+
+
Comment
Kommentar
@@ -55936,8 +56544,8 @@ Außer Leerzeichen innerhalb von Kommentaren und Zeichenketten.
Git Blame
- Copy SHA1 to Clipboard
- SHA1 in die Zwischenablage kopieren
+ Copy Hash to Clipboard
+
<b>Note:</b> "%1" or "%2" is enabled in the instant blame settings.
@@ -55988,6 +56596,26 @@ Außer Leerzeichen innerhalb von Kommentaren und Zeichenketten.
Reloads the type hierarchy for the symbol under the cursor.
Lädt die Typenhierarchie für das Symbol unter der Einfügemarke neu.
+
+ Select Previous Suggestion
+
+
+
+ Select Next Suggestion
+
+
+
+ Apply (%1)
+ Anwenden (%1)
+
+
+ Apply Word (%1)
+ Wort anwenden (%1)
+
+
+ Apply Line
+
+
QtC::Todo
@@ -56477,6 +57105,14 @@ Die Trace-Daten sind verloren.
Enter project name
Geben Sie einen Namen für das Projekt ein
+
+ Add to project:
+
+
+
+ Chosen project wizard does not support the build system.
+
+
Directory "%1" will be created.
Verzeichnis "%1" wird erstellt.
@@ -56730,6 +57366,10 @@ Die Trace-Daten sind verloren.
Failed to copy recursively from "%1" to "%2" while trying to extract tar archive to target: %3
Rekursives Kopieren von "%1" nach "%2" beim Auspacken des Tar-Archivs am Ziel fehlgeschlagen: %3
+
+ renameFile is not implemented for "%1".
+
+
fileContents is not implemented for "%1".
fileContents ist für "%1" nicht implementiert.
@@ -56746,6 +57386,14 @@ Die Trace-Daten sind verloren.
watch is not implemented.
"watch" ist nicht implementiert.
+
+ Failed to watch "%1".
+
+
+
+ Failed to watch "%1", it does not exist.
+
+
Refusing to remove the standard directory "%1".
Das Standardverzeichnis "%1" kann nicht gelöscht werden.
@@ -56766,6 +57414,10 @@ Die Trace-Daten sind verloren.
Failed to remove file "%1".
Die Datei "%1" konnte nicht gelöscht werden.
+
+ Failed to rename file "%1" to "%2": %3
+
+
File "%1" does not exist.
Datei "%1" existiert nicht.
@@ -56794,6 +57446,10 @@ Die Trace-Daten sind verloren.
Path "%1" exists but is not a writable directory.
Der Pfad "%1" existiert, ist aber kein schreibbares Verzeichnis.
+
+ removeFile is not implemented for "%1".
+
+
Cannot copy "%1" to "%2": %3
Kopieren von "%1" nach "%2" ist fehlgeschlagen: %3
@@ -56873,6 +57529,10 @@ Die Trace-Daten sind verloren.
Overwrite existing file "%1"?
Soll die Datei "%1" überschrieben werden?
+
+ Failed to set up scratch buffer in "%1".
+
+
%1 on %2
File on device
@@ -56895,6 +57555,10 @@ Die Trace-Daten sind verloren.
Could not set permissions on "%1"
Die Berechtigungen für "%1" konnten nicht gesetzt werden
+
+ Failed to move %1 to %2. Removing the source file failed: %3
+
+
No "localSource" device hook set.
Keine Geräteimplementation für "localSource" gesetzt.
@@ -57058,6 +57722,10 @@ Die Trace-Daten sind verloren.
Infinite recursion error
Fehler: Endlose Rekursion
+
+ Failed to expand macros in process arguments: %1
+
+
%1: Full path including file name.
%1: Vollständiger Pfad einschließlich Dateiname.
@@ -58892,6 +59560,10 @@ Check settings or ensure Valgrind is installed and available in PATH.
F&iles
&Dateien
+
+ Cannot commit: %1
+
+
%1 %2/%n File(s)
@@ -59248,6 +59920,22 @@ should a repository require SSH-authentication (see documentation on SSH and the
Setting environment variables:
Setze Umgebungsvariablen:
+
+ The chosen directory is an emsdk location.
+
+
+
+ An SDK is installed.
+
+
+
+ An SDK is activated.
+
+
+
+ The activated SDK is usable by %1.
+
+
The activated version %1 is not supported by %2. Activate version %3 or higher.
%1=sdkVersion, %2=QtC-Version, %3=minVersion
@@ -60350,7 +61038,7 @@ defined in step size.
- Uniform cell size
+ Uniform cell sizes
@@ -61131,7 +61819,7 @@ it reaches the start or end.
Delete
-
+ Löschen
Show Thumbnail
@@ -62004,7 +62692,7 @@ This is used for calculating the total implicit size.
Delete
-
+ Löschen
Create New Texture
@@ -62042,7 +62730,7 @@ This is used for calculating the total implicit size.
Downloading...
-
+ Lade herunter...
Extracting...
@@ -62300,7 +62988,7 @@ Are you sure you want to remove it?
Remove
-
+ Entfernen
Cancel
diff --git a/share/qtcreator/translations/qtcreator_fr.ts b/share/qtcreator/translations/qtcreator_fr.ts
index 2f571f310a6..cc92aaa752d 100644
--- a/share/qtcreator/translations/qtcreator_fr.ts
+++ b/share/qtcreator/translations/qtcreator_fr.ts
@@ -778,6 +778,10 @@ Utilisez AmbientSound.Infinite pour boucler indéfiniment.
Collapse All
Tout réduire
+
+ Edit in Effect Composer
+ Modifier dans le compositeur d'effet
+
Add Light Probe
Ajouter une sonde de lumière
@@ -1392,6 +1396,37 @@ Le chemin doit être relatif.
L’URL de la ressource pour l’icône.
+
+ CameraActionsModel
+
+ 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.
+
+
+ Camera view settings
+ Paramètres de la vue de la caméra
+
+
CameraSpeedConfigAction
@@ -1422,6 +1457,11 @@ Le chemin doit être relatif.
Reset
Réinitialiser
+
+ <p>You only have partial control in fly mode. For full control, please
+ enable the <span style="text-decoration: underline">Accessibility settings</span></p>
+ <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
@@ -1769,8 +1809,8 @@ Le chemin doit être relatif.
Définit la direction du flux des éléments de l'<b>agencement en colonne</b>.
- Uniform cell size
- Taille de cellules uniforme
+ Uniform cell sizes
+ Tailles de cellule uniforme
Toggles all cells to have a uniform size.
@@ -2167,6 +2207,14 @@ Cela ne peut être annulé.
User Assets
Ressources de l'utilisateur
+
+ material
+ matériau
+
+
+ item
+ élément
+
ContentLibraryEffectContextMenu
@@ -2212,6 +2260,10 @@ Cela ne peut être annulé.
Item is imported to the project
L'élément est importé dans le projet
+
+ Add an instance to project
+ Ajouter une instance au projet
+
ContentLibraryItemContextMenu
@@ -2235,6 +2287,10 @@ Cela ne peut être annulé.
Remove from Content Library
Supprimer de la bibliothèque de contenus
+
+ Import bundle
+ Importer un bundle
+
ContentLibraryMaterial
@@ -2253,10 +2309,6 @@ Cela ne peut être annulé.
ContentLibraryMaterialsView
-
- No materials available. Make sure you have internet connection.
- Aucun matériau disponible. Assurez-vous d'avoir une connexion Internet.
-
<b>Content Library</b> materials are not supported in Qt5 projects.
Les matériaux de la <b>bibliothèque de contenus</b> ne sont pas pris en charge dans les projets Qt5.
@@ -2273,6 +2325,10 @@ Cela ne peut être annulé.
<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.
+
+ No materials available. Make sure you have an internet connection.
+ Aucun matériau disponible. Assurez-vous d'avoir une connexion Internet.
+
No match found.
Aucun résultat.
@@ -2350,7 +2406,7 @@ Cela ne peut être annulé.
ContentLibraryTexturesView
- No textures available. Make sure you have internet connection.
+ No textures available. Make sure you have an internet connection.
Aucune texture disponible. Assurez-vous d'avoir une connexion Internet.
@@ -2376,6 +2432,10 @@ Cela ne peut être annulé.
<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
@@ -2481,8 +2541,8 @@ Cela ne peut être annulé.
Supprimer le bundle %1
- Are you sure you? The action cannot be undone
- Voulez-vous vraiment supprimer le bundle ? Cette action ne peut être annulée
+ Are you sure? The action cannot be undone.
+ Voulez-vous vraiment supprimer le bundle ? Cette action ne peut être annulée.
Remove
@@ -4236,6 +4296,21 @@ Les identifiants doivent commencer avec une lettre minuscule.
%2
+
+ IssuesOutputPanel
+
+ Issues
+ Problèmes
+
+
+ Output
+ Sortie
+
+
+ Clear
+ Nettoyer
+
+
ItemDelegateSection
@@ -4821,6 +4896,14 @@ ajouter un composant en surbrillance.
Choose a style for the Qt Quick Controls of the project.
Choisissez un style pour les contrôles Qt Quick du projet.
+
+ Show issues.
+ Afficher les problèmes.
+
+
+ Show application output.
+ Afficher la sortie de l'application.
+
Switch to Design Mode.
Basculer vers le mode Design.
@@ -5102,28 +5185,25 @@ ajouter un composant en surbrillance.
Add to Content Library
Ajouter à la bibliothèque de contenus
-
-
- MaterialEditorToolBar
- Apply material to selected model.
- Appliquer le matériau au modèle sélectionné.
+ Import Material
+ Importer un matériau
- Create new material.
- Créer un nouveau matériau.
-
-
- Delete current material.
- Supprimer le matériau en cours.
-
-
- Open material browser.
- Ouvrir le navigateur de matériaux.
+ Export Material
+ Exporter un matériau
- MaterialEditorTopSection
+ MaterialEditorPreview
+
+ Select preview environment.
+ Sélectionner un environnement d'aperçu.
+
+
+ Select preview model.
+ Sélectionner un modèle d'aperçu.
+
Cone
Cone
@@ -5156,14 +5236,28 @@ ajouter un composant en surbrillance.
Landscape
Paysage
+
+
+ MaterialEditorToolBar
- Select preview environment.
- Sélectionner un environnement d’aperçu.
+ Apply material to selected model.
+ Appliquer le matériau au modèle sélectionné.
- Select preview model.
- Sélectionner un modèle d’aperçu.
+ Create new material.
+ Créer un nouveau matériau.
+
+ Delete current material.
+ Supprimer le matériau en cours.
+
+
+ Open material browser.
+ Ouvrir le navigateur de matériaux.
+
+
+
+ MaterialEditorTopSection
Name
Nom
@@ -5373,7 +5467,8 @@ Erreur :
Axis
-
+ Peut être au pluriel ?
+ Axe
Threshold
@@ -6184,10 +6279,6 @@ est en cours.
QKeychain::JobPrivate
-
- Unknown error
- Erreur inconnue
-
Access to keychain denied
keychain ?
@@ -6278,11 +6369,13 @@ est en cours.
Toutes les définitions syntaxiques sont à jour.
- Downloading new syntax definition for '%1'...
+ Downloading new syntax definition for '%1'…
+ @info
Téléchargement d’une nouvelle définition syntaxique pour « %1 »…
- Updating syntax definition for '%1' to version %2...
+ Updating syntax definition for '%1' to version %2…
+ @info
Mise à jour de la définition syntaxique pour « %1 » vers la version %2…
@@ -6335,6 +6428,10 @@ est en cours.
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.
@@ -6345,46 +6442,6 @@ Do you want to edit this effect?
Assurez-vous de l'avoir sauvegardé dans le compositeur d'effet.
Souhaitez-vous éditer cet effet ?
-
- Access to keychain denied
- Accès au porte-clés refusé
-
-
- No keyring daemon
- Aucun démon de trousseau disponible
-
-
- Already unlocked
- Déjà déverrouillé
-
-
- No such keyring
- Aucun trousseau de ce type
-
-
- Bad arguments
- Arguments incorrects
-
-
- I/O error
- Erreur d'E/S
-
-
- Cancelled
- Annulé
-
-
- Keyring already exists
- Le trousseau existe déjà
-
-
- No match
- Aucun résultat
-
-
- Unknown error
- Erreur inconnue
-
Entry not found
Entrée introuvable
@@ -6409,6 +6466,10 @@ Souhaitez-vous éditer cet effet ?
%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é.
@@ -6421,6 +6482,38 @@ Souhaitez-vous éditer cet effet ?
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
@@ -6800,25 +6893,6 @@ Export des ressources : %2
-
- QmlDesigner::BackendModel
-
- Type
- Type
-
-
- Name
- Nom
-
-
- Singleton
- Singleton
-
-
- Local
- Local
-
-
QmlDesigner::BackgroundAction
@@ -7037,6 +7111,14 @@ Export des ressources : %2
Content Library
Bibliothèque de contenus
+
+ Texture Exists
+ La texture existe déjà
+
+
+ A texture with the same name '%1' already exists in the Content Library, are you sure you want to overwrite it?
+ Une texture avec le nom « %1 » existe déjà dans la bibliothèque de contenu. Souhaitez-vous l'écraser ?
+
3D Item Exists
L'élément 3D existe déjà
@@ -7045,6 +7127,22 @@ Export des ressources : %2
A 3D item with the same name '%1' already exists in the Content Library, are you sure you want to overwrite it?
Un élément 3D portant le même nom '%1' existe déjà dans la bibliothèque de contenus. Souhaitez-vous l'écraser ?
+
+ Component Exists
+ Le composant existe déjà
+
+
+ A component with the same name '%1' already exists in the Content Library, are you sure you want to overwrite it?
+ Un composant avec le nom « %1 » existe déjà dans la bibliothèque de contenus. Souhaitez-vous l'écraser ?
+
+
+ Unsupported bundle file
+ Fichier de bundle non supporté
+
+
+ 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 supportée
+
QmlDesigner::ContentLibraryWidget
@@ -7241,6 +7339,21 @@ Export des ressources : %2
La propriété « %1 » existe déjà.
+
+ QmlDesigner::Edit3DMaterialsAction
+
+ Materials
+ Matériaux
+
+
+ Remove
+ Supprimer
+
+
+ Edit
+ Modifier
+
+
QmlDesigner::Edit3DView
@@ -7286,10 +7399,6 @@ Export des ressources : %2
Edit Component
Éditer le composant
-
- Edit Material
- Éditer le matériau
-
Duplicate
Dupliquer
@@ -7436,6 +7545,14 @@ Export des ressources : %2
Add to Content Library
Ajouter à la bibliothèque de contenus
+
+ Import Component
+ Importer un composant
+
+
+ Export Component
+ Exporter un composant
+
3D view is not supported in MCU projects.
La vue 3D n'est pas prise en charge dans les projets MCU.
@@ -7746,6 +7863,208 @@ Veuillez vérifier le panneau de sortie pour plus d'informations.Ancre
+
+ QmlDesigner::Import3dDialog
+
+ Asset Import
+ Importation de ressources
+
+
+ Imported objects
+ Objets importés
+
+
+ Import Options
+ Options d'importation
+
+
+ Show All Options
+ Afficher toutes les options
+
+
+ Close
+ Fermer
+
+
+ Import
+ Importer
+
+
+ Importing:
+ Importation de :
+
+
+ Locate 3D Asset "%1"
+ Trouver la ressource 3D « %1 »
+
+
+ %1 options
+ Options %1
+
+
+ No options available for this type.
+ Aucune option disponible pour ce type.
+
+
+ No simple options available for this type.
+ Aucune option simple disponible pour ce type.
+
+
+ Preview icon generated for non-existent asset: %1
+ Icône de prévisualisation générée pour les ressources inexistantes : %1
+
+
+ Preview generation process crashed.
+ Le processus de génération de la prévisualisation a planté.
+
+
+ Cancel
+ Annuler
+
+
+ Accept
+ Accepter
+
+
+ Object Type: %1
+
+ Type d'objet : %1
+
+
+
+ Import Size: %1
+ Taille de l'import : %1
+
+
+ Import ready for preview: %1
+ Import prêt pour la prévisualisation : %1
+
+
+ Click "Accept" to finish the import or adjust options and click "Import" to import again.
+ Cliquez sur « Accepter » pour finaliser l'importation ou ajustez les options et cliquez sur « Importer » pour importer à nouveau.
+
+
+ Import interrupted.
+ Importation interrompue.
+
+
+ Import done.
+ Importation terminée.
+
+
+ Canceling import.
+ Annulation de l'importation.
+
+
+ Hide Advanced Options
+ Cacher les options avancées
+
+
+ Removed %1 from the import.
+ %1 supprimé depuis l'importation.
+
+
+
+ QmlDesigner::Import3dImporter
+
+ Could not create a temporary directory for import.
+ Impossible de créer un dossier temporaire pour l'importation.
+
+
+ Importing 3D assets.
+ Importation des ressources 3D.
+
+
+ Attempted to reimport no assets.
+ Tentative de réimportation sans ressource.
+
+
+ Attempted to reimport non-existing asset: %1
+ Tentative de réimportation d'une ressource inexistante : %1
+
+
+ Could not access temporary asset directory: "%1".
+ Impossible d'accéder au répertoire temporaire des ressources : « %1 ».
+
+
+ Import process crashed.
+ Le processus d'importation a planté.
+
+
+ Import failed for unknown reason.
+ Échec lors de l'importation pour une raison inconnue.
+
+
+ Asset import process failed: "%1".
+ Échec lors du processus d'importation de ressource : « %1 ».
+
+
+ Parsing files.
+ Analyse des fichiers.
+
+
+ Skipped import of duplicate asset: "%1".
+ Importation ignorée des ressources en double : « %1 ».
+
+
+ Skipped import of existing asset: "%1".
+ Importation ignorée d'une ressource déjà existante : « %1 ».
+
+
+ No files selected for overwrite, skipping import: "%1".
+ Aucun fichier sélectionné pour l'écrasement, importation de « %1 » ignorée.
+
+
+ Failed to create qmldir file for asset: "%1".
+ Échec lors de la création du fichier qmldir pour la ressource : « %1 ».
+
+
+ Removing old overwritten assets.
+ Suppression des anciennes ressources écrasées.
+
+
+ Copying asset files.
+ Copie des fichiers de ressources.
+
+
+ Overwrite Existing Asset?
+ Écraser les ressources existantes ?
+
+
+ Asset already exists. Overwrite existing or skip?
+"%1"
+ La ressource existe déjà. Écraser ou passer ?
+« %1 »
+
+
+ Overwrite Selected Files
+ Écraser les fichiers sélectionnés
+
+
+ Overwrite All Files
+ Écraser tous les fichiers
+
+
+ Skip
+ Passer
+
+
+ Failed to start import 3D asset process.
+ Échec du démarrage du processus d'importation des ressources 3D.
+
+
+ Updating data model.
+ Mise à jour du modèle de données.
+
+
+ Failed to insert import statement into qml document.
+ Échec d'insertion de la déclaration d'importation dans le document qml.
+
+
+ Failed to update imports: %1
+ Échec de mise à jour des importations : %1
+
+
QmlDesigner::InsightView
@@ -8152,182 +8471,6 @@ Veuillez vérifier le panneau de sortie pour plus d'informations.Échec lors de la création de l'élément de type %1
-
- QmlDesigner::ItemLibraryAssetImportDialog
-
- Asset Import
- Importation de ressources
-
-
- Import Options
- Options d'importation
-
-
- Show All Options
- Afficher tous les options
-
-
- Import
- Importer
-
-
- Select import options and press "Import" to import the following files:
- Sélectionnez les options d'importation et appuyez sur "Importer" pour importer les fichiers suivants :
-
-
- Importing:
- Importation de :
-
-
- Locate 3D Asset "%1"
- Localiser la ressource 3D « %1 »
-
-
- %1 options
- Options %1
-
-
- No options available for this type.
- Aucune option disponible pour ce type.
-
-
- No simple options available for this type.
- Aucune option simple disponible pour ce type.
-
-
- Cancel
- Annuler
-
-
- Accept
- Accepter
-
-
- Import is ready for preview.
- Le fichier importé peut être prévisualisé.
-
-
- Click "Accept" to finish the import or adjust options and click "Import" to import again.
- Cliquez sur « Accepter » pour finaliser l'importation ou ajustez les options et cliquez sur « Importer » pour importer à nouveau.
-
-
- Close
- Fermer
-
-
- Import interrupted.
- Importation interrompue.
-
-
- Import done.
- Importation finie.
-
-
- Canceling import.
- Annulation de l'importation.
-
-
- Hide Advanced Options
- Cacher les options avancées
-
-
-
- QmlDesigner::ItemLibraryAssetImporter
-
- Could not create a temporary directory for import.
- Impossible de créer un dossier temporaire pour l'importation.
-
-
- Importing 3D assets.
- Importation des ressources 3D.
-
-
- Import process crashed.
- Le processus d’importation a planté.
-
-
- Import failed for unknown reason.
- Échec lors de l'importation pour une raison inconnue.
-
-
- Asset import process failed: "%1".
- Échec lors du processus d'importation de ressource : « %1 ».
-
-
- Parsing files.
- Analyse des fichiers.
-
-
- Skipped import of duplicate asset: "%1".
- Importation ignorée car doublon dans les ressources : « %1 ».
-
-
- Skipped import of existing asset: "%1".
- Importation ignorée d'une ressource déjà existante : « %1 ».
-
-
- No files selected for overwrite, skipping import: "%1".
- Aucun fichier sélectionné pour l'écrasement, importation de « %1 » ignorée.
-
-
- Could not access temporary asset directory: "%1".
- Impossible d'accéder au répertoire temporaire des ressources : « %1 ».
-
-
- Attempted to reimport non-existing asset: %1
- Tentative de réimportation d'une ressource inexistante : %1
-
-
- Failed to create qmldir file for asset: "%1".
- Échec lors de la création du fichier qmldir pour la ressource : « %1 ».
-
-
- Removing old overwritten assets.
- Suppression des anciennes ressources écrasées.
-
-
- Copying asset files.
- Copie des fichiers de ressources.
-
-
- Overwrite Existing Asset?
- Écraser les ressources existantes ?
-
-
- Asset already exists. Overwrite existing or skip?
-"%1"
- La ressource existe déjà. Écraser ou sauter ?
-« %1 »
-
-
- Overwrite Selected Files
- Écraser les fichiers sélectionnés
-
-
- Overwrite All Files
- Écraser tous les fichiers
-
-
- Skip
- Passer
-
-
- Failed to start import 3D asset process.
- Échec du démarrage du processus d'importation des ressources 3D.
-
-
- Updating data model.
- Mise à jour du modèle de données.
-
-
- Failed to insert import statement into qml document.
- Échec d'insertion de la déclaration d'importation dans le document qml.
-
-
- Failed to update imports: %1
- Échec de mise à jour des importations : %1
-
-
QmlDesigner::ItemLibraryImport
@@ -8730,18 +8873,6 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.Give Feedback...
Faire un retour…
-
- License: Enterprise
- Licence : Entreprise
-
-
- License: Professional
- Licence : Professionnel
-
-
- Licensee: %1
- Licencié à : %1
-
Enjoying the %1?
Vous appréciez %1 ?
@@ -9188,18 +9319,6 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.
QmlDesigner::TextEditorView
-
- Trigger Completion
- Déclencher la complétion
-
-
- Meta+Space
- Meta+Espace
-
-
- Ctrl+Space
- Ctrl+Espace
-
Code
Code
@@ -9940,6 +10059,18 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.Edit Material
Éditer le matériau
+
+ Add to Content Library
+ Ajouter à la bibliothèque de contenus
+
+
+ Import Component
+ Importer un composant
+
+
+ Export Component
+ Exporter un composant
+
Edit Annotations
Éditer les annotations
@@ -9952,6 +10083,10 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.Edit in 3D View
Modifier dans la vue 3D
+
+ Edit in Effect Composer
+ Éditer dans le compositeur d'effet
+
Open Signal Dialog
Ouvrir la boîte de dialogue des signaux
@@ -10739,20 +10874,32 @@ Installez-les manuellement après que l'opération en cours soit finie.
Nom :
- Device definition:
- Définition de périphérique :
+ Target ABI / API:
+ ABI/API Cible :
- Architecture (ABI):
- Architecture (ABI) :
+ Skin definition:
+ Définition de la skin :
- Cannot create a new AVD. No suitable Android system image is installed.<br/>Install a system image for the intended Android version from the SDK Manager.
- Impossible de créer un nouvel AVD. Aucune image système Android adéquate n'est installée. <br/>Installer une image système pour la version Android souhaitée à partir du gestionnaire de SDK.
+ Avd list command failed. %1 %2
+ Commande Avd de listage échouée. %1 %2
- Cannot create an AVD for ABI %1.<br/>Install a system image for it from the SDK Manager tab first.
- Impossible de créer un AVD pour l'ABI %1. <br/>Installez d'abord une image système pour l'AVD à partir de l'onglet gestionnaire de SDK.
+ Creating new AVD device...
+ Création d'un nouveau périphérique AVD…
+
+
+ Install a system image from the SDK Manager first.
+ Installez d'abord une image système depuis le gestionnaire de SDK.
+
+
+ No system images found.
+ Aucune image système n'a été trouvée.
+
+
+ No system images found for %1.
+ Aucune image système n'a été trouvée pour %1.
Allowed characters are: a-z A-Z 0-9 and . _ -
@@ -11018,6 +11165,10 @@ dans le navigateur système pour un téléchargement manuel.
Select OpenSSL Include Project File
Sélectionner le fichier d'inclusion du projet d'OpenSSL
+
+ All changes on this page take effect immediately.
+ Tous les changements effectués sur cette page prennent effet immédiatement.
+
Android Settings
Paramètres Android
@@ -11382,10 +11533,6 @@ Le kit supporte « %2 », mais le périphérique utilise « %3
Deploy to Android device
Déployer sur périphérique Android
-
- Pulling files necessary for debugging.
- Envoie des fichiers nécessaires au débogage.
-
Cannot find the package name from AndroidManifest.xml nor build.gradle files at "%1".
Impossible de trouver le nom du paquet dans les fichiers AndroidManifest.xml ou build.gradle présents dans le répertoire « %1 ».
@@ -11556,12 +11703,6 @@ Cela ne peut être annulé.
Android package installation failed.
Échec lors de l'installation du paquet Android.
-
- Android package installation failed.
-%1
- Échec lors de l'installation du paquet Android.
-%1
-
Starting Android virtual device failed.
Le démarrage du périphérique virtuel Android a échoué.
@@ -11605,6 +11746,23 @@ Cela ne peut être annulé.
No free ports available on host for QML debugging.
Aucun port libre n’est disponible sur l’hôte pour le débogage.QML.
+
+ Failed to forward %1 debugging ports.
+ %1 = QML/JDB/C++
+ Échec du transfert des ports de débogage %1.
+
+
+ Activity Manager error: %1
+ Erreur du gestionnaire d'activités : %1
+
+
+ Android target "%1" terminated.
+ La cible Android « %1 » s'est terminée.
+
+
+ Android target "%1" died.
+ La cible Android « %1 » s'est arrêtée.
+
Failed to find application directory.
Impossible de trouver le répertoire de l'application.
@@ -11621,42 +11779,6 @@ Cela ne peut être annulé.
Cannot copy C++ debug server.
Impossible de copier le serveur de débogage C++.
-
- Failed to start the activity.
- Impossible de démarrer l'activité.
-
-
- Activity Manager threw the error: %1
- Le gestionnaire d'activités a envoyé l'erreur : %1
-
-
- Failed to start debugger server.
- Impossible de démarrer le serveur de débogage.
-
-
- Failed to forward JDB debugging ports.
- Impossible de transférer les ports de débogage JDB.
-
-
- Failed to start JDB.
- Impossible de démarrer JDB.
-
-
- Cannot attach JDB to the running application.
- Impossible d'attacher JDB à l'application en cours d'exécution.
-
-
- "%1" died.
- « %1 » s'est arrêtée.
-
-
- Failed to forward C++ debugging ports.
- Échec du transfert des ports de débogage C++.
-
-
- Failed to forward QML debugging ports.
- Échec du transfert des ports de débogage QML.
-
General
Général
@@ -11777,10 +11899,6 @@ Cela ne peut être annulé.
Goto error
Aller à l’erreur
-
- Target API:
- API cible :
-
MiB
Mio
@@ -11882,28 +12000,25 @@ Cela ne peut être annulé.
Bibliothèques (*.so)
- No application .pro file found in this project.
- Aucun fichier d’application .pro n’a été trouvé dans ce projet.
+ No application build targets found in this project.
+ Aucune cible de compilation pour l'application n'a été trouvée pour ce projet.
- No Application .pro File
- Aucun ficher d’application .pro
+ No Application Build Target
+ Aucune cible de compilation pour l'application
- Select the .pro file for which you want to create the Android template files.
- Sélectionnez le fichier .pro pour lequel vous souhaitez créer les modèles de fichiers Android.
+ Select the build target for which to create the Android templates.
+ Sélectionnez la cible de compilation pour laquelle créer les modèles Android.
- .pro file:
- Fichier .pro :
+ Build target:
+ Cible de compilation :
- Select a .pro File
- Sélectionner un fichier .pro
-
-
- Android package source directory:
- Répertoire des sources du paquet Android :
+ Select a build target
+ Titre
+ Sélectionner une cible de compilation
The Android package source directory cannot be the same as the project directory.
@@ -11914,20 +12029,20 @@ Cela ne peut être annulé.
Copier les fichiers Gradle dans le répertoire Android
- It is highly recommended if you are planning to extend the Java part of your Qt application.
+ It is highly recommended if you are planning to extend the Java side of your Qt application.
Hautement recommandé si vous souhaitez étendre la partie Java de votre application Qt.
Select the Android package source directory.
-The files in the Android package source directory are copied to the build directory's Android directory and the default files are overwritten.
+The files in the Android package source directory will be copied to the Android build directory and the default templates will be overwritten.
Sélectionner le répertoire source du paquet Android.
-Les fichiers du répertoire source du paquet Android sont copiés dans le répertoire de compilation Android et les fichiers par défaut sont écrasés.
+Les fichiers du répertoire source du paquet Android seront copiés dans le répertoire de compilation Android et les modèles par défaut sont écrasés.
- The Android template files will be created in the %1 set in the .pro file.
- Les fichiers modèles Android seront créés dans %1 défini dans le fichier .pro.
+ The Android template files will be created under the %1 path that is set in the project file.
+ Les fichiers modèles Android seront créés à l'emplacement %1 défini dans le fichier du projet.
Create Android Template Files Wizard
@@ -12046,94 +12161,6 @@ Les fichiers du répertoire source du paquet Android sont copiés dans le réper
Configure Android
Configurer Android
-
- Configure Android...
- Configurer Android…
-
-
- %1 needs additional settings to enable Android support. You can configure those settings in the Options dialog.
- %1 nécessite des paramètres supplémentaires pour activer le support d'Android. Vous pouvez les définir dans la boîte de dialogue des options.
-
-
- %1 has been stopped.
- %1 a été arrêté.
-
-
- Selected device is invalid.
- Le périphérique sélectionné est invalide.
-
-
- Selected device is disconnected.
- Le périphérique sélectionné est déconnecté.
-
-
- Launching AVD.
- Démarrage d'AVD.
-
-
- Could not start AVD.
- Impossible de démarrer AVD.
-
-
- No valid AVD has been selected.
- Aucun AVD valide n'est sélectionné.
-
-
- Checking if %1 app is installed.
- Vérification si l'application %1 est installée.
-
-
- ABI of the selected device is unknown. Cannot install APK.
- L'ABI du périphérique sélectionné est inconnue. Impossible d'installer l'APK.
-
-
- Cannot install %1 app for %2 architecture. The appropriate APK was not found in resources folders.
- Impossible d'installer l'application %1 pour l'architecture %2. L'APK adéquat n'a pas été trouvé dans les dossiers de ressources.
-
-
- Installing %1 APK.
- Installation de l'APK %1.
-
-
- Too many .qmlproject files in your project. Open directly the .qmlproject file you want to work with and then run the preview.
- Trop de fichiers .qmlproject dans votre projet. Ouvrez directement le fichier .qmlproject sur lequel vous souhaitez travailler et exécutez la prévisualisation.
-
-
- No .qmlproject file found among project files.
- Aucun fichier .qmlproject trouvé parmi les fichiers du projet.
-
-
- Could not gather information on project files.
- Impossible de récupérer des informations sur les fichiers du projet.
-
-
- Could not create file for %1 "%2".
- Impossible de créer un fichier pour %1 « %2 ».
-
-
- A timeout occurred running "%1".
- Un dépassement de délai s'est produit en exécutant « %1 ».
-
-
- Crash while creating file for %1 "%2".
- Plantage lors de la création de fichiers pour %1 « %2 ».
-
-
- Creating file for %1 failed. "%2" (exit code %3).
- Échec de création d'un fichier pour %1. « %2 » (code d'erreur %3).
-
-
- Uploading files.
- Transfert des fichiers.
-
-
- Starting %1.
- Démarrage de %1.
-
-
- %1 is running.
- %1 est en cours d’exécution.
-
NDK is not configured in Devices > Android.
Le NDK n'est pas configuré dans Périphériques > Android.
@@ -12162,10 +12189,6 @@ Les fichiers du répertoire source du paquet Android sont copiés dans le réper
Post-quit on-device shell commands:
Commandes shell à lancer sur le périphérique après l'arrêt :
-
- "%1" terminated.
- « %1 » terminé.
-
Encountered SSL errors, download is aborted.
Erreurs SSL rencontrées. Le téléchargement a été annulé.
@@ -12495,6 +12518,14 @@ le fichier manifeste et d'écraser vos paramètres. Accepter l'écrase
Disables the automatic updates based on the current run configuration and allows customizing the values.
Désactive les mises à jour automatiques reposant sur la configuration d'exécution actuelle et permet la personnalisation des valeurs.
+
+ Restart if running:
+ Redémarrer si en cours d'exécution :
+
+
+ Restarts the application in case it is already running.
+ Redémarre l'application si celle-ci est déjà en cours d'exécution.
+
Controller:
Contrôleur :
@@ -12958,7 +12989,7 @@ Exécutable : %2
Stop on failure
- Arrêt sur échec
+ Arrêter sur échec
Run tests in parallel mode using given number of jobs.
@@ -13204,7 +13235,7 @@ Voir la documentation de Google Test pour plus d'informations sur les filtr
Event counter
- Compteurd'événements
+ Compteur d'événements
Uses event counter when executing benchmarks.
@@ -13399,6 +13430,10 @@ Voir la documentation de Google Test pour plus d'informations sur les filtr
Test Results
Résultats des tests
+
+ Show Durations
+ Afficher les temps
+
Pass
Succès
@@ -13873,37 +13908,9 @@ Avertissement : fonctionnalité expérimentale pouvant entraîner un échec
Display name for AutotoolsProjectManager::ConfigureStep id.
Configurer
-
- Parsing %1 in directory %2
- Analyse %1 dans le répertoire %2
-
-
- Parsing directory %1
- Analyse du répertoire %1
-
QtC::Axivion
-
- Project:
- Projet :
-
-
- Lines of code:
- Lignes de code :
-
-
- Analysis timestamp:
- Analyse des horodatages :
-
-
- unknown
- inconnu
-
-
- Total:
- Total :
-
Owner
Propriétaire
@@ -13917,17 +13924,45 @@ Avertissement : fonctionnalité expérimentale pouvant entraîner un échec
Total rows:
Nombre de lignes totales :
+
+ 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
- Show dashboard
- Afficher le tableau de bord
+ Issues
+ Problèmes
- Search for issues
- Recherche des problèmes
+ Issue Details
+ Détails des problèmes
+
+
+ Reload
+ Recharger
+
+
+ Show Inline Issues
+ Afficher les problèmes en ligne
+
+
+ Show Issue Annotations Inline
+ Afficher les problèmes avec des annotations en ligne
+
+
+ Show Online Filter Help
+ Afficher l'aide en ligne des filtres
Open Issue in Dashboard
@@ -13946,36 +13981,9 @@ Avertissement : fonctionnalité expérimentale pouvant entraîner un échec
Axivion
- Show rule details
- Afficher le détail de la règle
-
-
- Dashboard projects:
- Projets de tableau de bord :
-
-
- Fetch Projects
- Récupérer les projets
-
-
- Link Project
- Lier le projet
-
-
- Unlink Project
- Délier le projet
-
-
- This project is not linked to a dashboard project.
- Ce projet n'est pas lié à un projet de tableau de bord.
-
-
- This project is linked to "%1".
- Ce projet est lié à « %1 ».
-
-
- Incomplete or misconfigured settings.
- Paramètres incomplets ou mal configurés.
+ Show Issue Properties
+ propriétés n'est peut être pas le meilleur mot ici. Informations?
+ Afficher les propriétés des problèmes
Certificate Error
@@ -14033,10 +14041,6 @@ Utilisateur : %2
Fetching DashboardInfo error.
Erreur de récupération des informations du tableau de bord.
-
- The DashboardInfo doesn't contain project "%1".
- Les informations du tableau de bord ne contiennent pas le projet « %1 ».
-
The activated link appears to be external.
Do you want to open "%1" with its default application?
@@ -14063,6 +14067,10 @@ Souhaitez-vous ouvrir « %1 » avec l'application par défaut
Marks issues on the scroll bar.
Affiche les problèmes dans la barre de défilement.
+
+ Axivion: Deleting API token for %1 as respective dashboard server was removed.
+ Axivion : suppression du jeton d'API pour %1 car le serveur de tableau de bord a été supprimé.
+
Username:
Nom d'utilisateur :
@@ -14107,14 +14115,82 @@ Souhaitez-vous ouvrir « %1 » avec l'application par défaut
Edit Dashboard Configuration
Modifier la configuration du tableau de bord
+
+ Project name:
+ Nom du projet :
+
+
+ Analysis path:
+ Emplacement à analyser :
+
+
+ Local path:
+ Emplacement local :
+
+
+ Project Name
+ Nom du projet
+
+
+ Analysis Path
+ Emplacement à analyser
+
+
+ Local Path
+ Emplacement local
+
+
+ Add
+ Ajouter
+
+
+ Delete
+ Supprimer
+
+
+ Move Up
+ Déplacer vers le haut
+
+
+ Move Down
+ Déplacer vers le bas
+
General
Général
+
+ Path Mapping
+ Correspondance des emplacements
+
Fetching...
Récupération…
+
+ Allows for filters combined with & as logical AND, | as logical OR and ! as logical NOT. The filters may contain * to match sequences of arbitrary characters. If a single filter is quoted with double quotes it will be matched on the complete string. Some filter characters require quoting of the filter expression with double quotes. If inside double quotes you need to escape " and \ with a backslash.
+Some examples:
+
+a matches issues where the value contains the letter 'a'
+"abc" matches issues where the value is exactly 'abc'
+!abc matches issues whose value does not contain 'abc'
+(ab | cd) & !ef matches issues with values containing 'ab' or 'cd' but not 'ef'
+"" matches issues having an empty value in this column
+!"" matches issues having any non-empty value in this column
+ Les filtres assemblés avec '&' pour le ET logique, '|' pour le OU logique et '!' pour le NON logique sont autorisés. Les filtres peuvent contenir des '*' pour correspondre à une séquence de caractères arbitraires. Si un filtre est placé entre guillemets, il correspondra à la chaîne de caractères complète. Certains caractères du filtre nécessitent de placer l'expression du filtre entre guillemets. À l'intérieur des guillemets, vous devez échapper les '"' avec un '\'.
+Voici quelques exemples :
+
+a permet de trouver les problèmes contenant la lettre 'a'
+"abc" permet de trouver les problèmes où la valeur est exactement 'abc'
+!abc permet de trouver les problèmes où la valeur ne contient pas 'abc'
+(ab | cb) & !ef permet de trouver les problèmes contenant la valeur 'ab' ou 'cd' mais pas 'ef'
+"" permet de trouver les problèmes ayant une valeur vide dans cette colonne
+!"" permet de trouver les problèmes n'ayant pas une valeur vide dans cette colonne
+
+
+ Apply
+ Appliquer
+
QtC::BareMetal
@@ -14795,10 +14871,6 @@ Souhaitez-vous ouvrir « %1 » avec l'application par défaut
IAREW
IAREW
-
- &Compiler path:
- &Chemin du compilateur :
-
Platform codegen flags:
Flags de plateforme de la génération de code :
@@ -15395,12 +15467,12 @@ Par exemple, « Revision : 15 » laissera la branche à la révis
Style de repli :
- Clang Format command:
- Commande de Clang Format :
+ ClangFormat command:
+ Commande de ClangFormat :
- Clang Format
- Clang Format
+ ClangFormat
+ ClangFormat
No description available.
@@ -15659,11 +15731,11 @@ Par exemple, « Revision : 15 » laissera la branche à la révis
CMake arguments:
- Arguments de Cmake :
+ Arguments de CMake :
Tool arguments:
- Arguments de l’outil :
+ Arguments de l'outil :
Stage for installation
@@ -15973,6 +16045,22 @@ Par exemple, « Revision : 15 » laissera la branche à la révis
Ctrl+Alt+B
Ctrl+Alt+B
+
+ Build &Subproject "%1"
+ Compiler le &sous-projet « %1 »
+
+
+ Build &Subproject
+ Compiler le &sous-projet
+
+
+ Rebuild
+ Recompiler
+
+
+ Clean
+ Nettoyer
+
Re-generates the kits that were created for CMake presets. All manual modifications to the CMake project settings will be lost.
Régénère les kits qui ont été créés pour les préréglages CMake. Toutes modifications manuelles aux paramètres du projet CMake sera perdue.
@@ -16048,7 +16136,7 @@ Par exemple, « Revision : 15 » laissera la branche à la révis
CMake generator defines how a project is built when using CMake.<br>This setting is ignored when using other build systems.
-
+ Le générateur CMake définit comment le projet est compilé par CMake.<br>Ce paramètre est ignoré lors de l'utilisation d'un autre système de compilation.
CMake Tool is unconfigured, CMake generator will be ignored.
@@ -16390,6 +16478,10 @@ Par exemple, « Revision : 15 » laissera la branche à la révis
Detection source: "%1"
Source de détection : « %1 »
+
+ None
+ Aucun
+
(Default)
(par défaut)
@@ -16562,6 +16654,10 @@ Par exemple, « Revision : 15 » laissera la branche à la révis
Initial Configuration:
Configuration initiale :
+
+ Expands to:
+ Développer en :
+
Current Configuration:
Configuration actuelle :
@@ -17190,14 +17286,6 @@ Assurez-vous que la variable CMAKE_BUILD_TYPE contient le champ « Build ty
Disable Diagnostic in Current Project
Désactiver les diagnostics dans le projet en cours
-
- Could not retrieve build directory.
- Impossible d’accéder au répertoire de compilation.
-
-
- Could not create "%1": %2
- Impossible de créer « %1 » : %2
-
Clazy Issue
Problème de Clazy
@@ -17267,7 +17355,7 @@ Assurez-vous que la variable CMAKE_BUILD_TYPE contient le champ « Build ty
Diagnostics
- Diagnostiques
+ Diagnostics
Release
@@ -17809,6 +17897,18 @@ Définissez d’abord un exécutable valide.
Clazy-Standalone:
Clazy autonome :
+
+ Compilation database for %1 successfully generated at "%2".
+ La base de données de compilation pour %1 a été générée avec succès à l'emplacement « %2 ».
+
+
+ Generating compilation database for %1 failed: %2
+ La génération de la base de données de compilation pour %1 a échoué : %2
+
+
+ Generating compilation database for %1 at "%2" ...
+ Génération de la base de données de compilation pour %1 à l'emplacement « %2 »…
+
QtC::ClassView
@@ -17818,8 +17918,8 @@ Définissez d’abord un exécutable valide.
Class View
- Ou est-ce un rapport avec la Vue ? (graphics/view)
- Affichage de la classe
+ Ce texte est affiché dans le combobox du panneau de gauche (où l'on affiche la hiérarchie du projets ou le système de fichiers). Peut être que "symboles" aurait plus sa place, sachant que ce mode affiche une liste des classes et les symboles définis par ces classes.
+ Classes
@@ -18307,6 +18407,89 @@ Oui :)
Commande ClearCase
+
+ QtC::CmdBridge
+
+ Command failed with exit code %1: %2
+ Commande échouée avec le code de sortie %1 : %2
+
+
+ Error starting cmdbridge: %1
+ Erreur lors du démarrage de cmdbridge : %1
+
+
+ Remote root path is empty
+ L'emplacement de la racine distante est vide
+
+
+ Remote root path is not absolute
+ L'emplacement de la racine distante n'est pas absolu
+
+
+ Could not find dd on remote host: %1
+ Impossible de trouver dd sur la machine hôte distante : %1
+
+
+ Error reading file: %1
+ Erreur lors de la lecture du fichier : %1
+
+
+ Error writing file: %1
+ Erreur lors de l'écriture du fichier : %1
+
+
+ File does not exist
+ Le fichier n'existe pas
+
+
+ Error removing file: %1
+ Erreur lors de la suppression du fichier : %1
+
+
+ Error copying file: %1
+ Erreur lors de la copie du fichier : %1
+
+
+ Error renaming file: %1
+ Erreur lors du renommage du fichier : %1
+
+
+ Error killing process: %1
+ Erreur lors de l'arrêt du processus : %1
+
+
+ Error creating temporary file: %1
+ Erreur lors de la création du fichier temporaire : %1
+
+
+ Failed starting bridge process
+ Échec lors du démarrage du processus de liaison
+
+
+ Failed starting bridge process: %1
+ Échec lors du démarrage du processus de liaison : %1
+
+
+ Bridge process not running
+ Le processus de liaison ne s'exécute pas
+
+
+ FollowSymlinks is not supported
+ L'option FollowSymlinks n'est pas prise en charge
+
+
+ Kickoff signal is not supported
+ Le signal de démarrage (Kickoff) n'est pas pris en charge
+
+
+ CloseWriteChannel signal is not supported
+ Le signal CloseWriteChannel n'est pas pris en charge
+
+
+ No command bridge found for architecture %1-%2
+ Aucune commande de liaison n'a été trouvée pour l'architecture %1 - %2
+
+
QtC::Coco
@@ -18587,6 +18770,18 @@ Oui :)
powered by %1
Fournit par %1
+
+ Change backend URL.
+ Modifier l'URL du back-end.
+
+
+ Set Compiler Explorer URL
+ Configurer l'URL de Compiler Explorer
+
+
+ URL:
+ URL :
+
Compiler Explorer Editor
Éditeur Compiler Explorer
@@ -18711,26 +18906,6 @@ Le code a été copié dans votre presse-papiers.
Do not ask again. This will disable Copilot for now.
Ne plus demander. Cela désactivera Copilot pour le moment.
-
- Select Previous Copilot Suggestion
- Sélectionner la suggestion Copilot précédente
-
-
- Select Next Copilot Suggestion
- Sélectionner la suggestion Copilot suivante
-
-
- Apply (%1)
- Appliquer (%1)
-
-
- Apply Word (%1)
- Appliquer le mot (%1)
-
-
- %1 of %2
- %1 de %2
-
Request Copilot Suggestion
Requête de suggestion Copilot
@@ -19069,6 +19244,14 @@ Sinon, vous devez spécifier le chemin vers le fichier %2 du greffon Copilot Neo
Pin
Épingler
+
+ Open Previous Document
+ Ouvrir le document précédent
+
+
+ Open Next Document
+ Ouvrir le document suivant
+
Reopen Last Closed Document
Ré-ouvrir le dernier document fermé
@@ -19526,6 +19709,10 @@ provided they were unmodified before the refactoring.
Enregistre automatiquement tous les fichiers ouverts affectés par une opération de refactorisation,
à condition qu’ils n’aient pas été modifiés avant la refactorisation.
+
+ Crash reports are saved in "%1".
+ Les rapports de plantage sont enregistrés dans « %1 ».
+
Crash Reporting
Rapport de plantage
@@ -19786,8 +19973,12 @@ provided they were unmodified before the refactoring.
Cycler sur les styles du sélecteur de mode
- Mode Selector Style
- Style de sélecteur de mode
+ Hide
+ Cacher
+
+
+ Modes
+ Modes
Icons and Text
@@ -19801,6 +19992,11 @@ provided they were unmodified before the refactoring.
Hidden
Caché
+
+ Show %1
+ %1 = name of a mode
+ Afficher %1
+
Version:
Version :
@@ -19837,6 +20033,18 @@ provided they were unmodified before the refactoring.
Ctrl+0
Ctrl+0
+
+ Could not find %1 executable in %2
+ Impossible de trouver l'exécutable %1 dans %2
+
+
+ The Qt logo, axivion stopping software erosion logo, Qt Group logo, as well as Qt®, Axivion®, avixion stopping software erosion®, Boot to Qt®, Built with Qt®, Coco®, froglogic®, Qt Cloud Services®, Qt Developer Days®, Qt Embedded®, Qt Enterprise®, Qt Group®, Qt Mobile®, Qt Quick®, Qt Quick Compiler®, Squish® are registered trademarks of The Qt Company Ltd. or its subsidiaries.
+ Le logo Qt, le logo axivion stopper stopping software erosion, le logo du groupe Qt, ainsi que Qt®, Axivion®, avixion stopping software erosion®, Boot to Qt®, Built with Qt®, Coco®, froglogic®, Qt Cloud Services®, Qt Developer Days®, Qt Embedded®, Qt Enterprise®, Qt Group®, Qt Mobile®, Qt Quick®, Qt Quick Compiler®, Squish® sont des marques déposées de The Qt Company Ltd. ou de ses filiales.
+
+
+ %1 is free software, and you are welcome to redistribute it under <a href="%2">certain conditions</a>. For some components, different conditions might apply though.
+ %1 est un logiciel libre et vous êtes invités à le redistribuer sous <a href="%2">certaines conditions</a>. Toutefois, d'autres conditions peuvent s'appliquer pour certains composants.
+
Meta+0
Meta+0
@@ -20105,6 +20313,16 @@ provided they were unmodified before the refactoring.
Show Non-matching Lines
Afficher les lignes non concordantes
+
+ Show {} &preceding lines
+ The placeholder "{}" is replaced by a spin box for selecting a number.
+ Afficher les {} lignes &précédentes
+
+
+ Show {} &subsequent lines
+ The placeholder "{}" is replaced by a spin box for selecting a number.
+ Afficher les {} lignes &suivantes
+
Filter output...
Filtrer la sortie…
@@ -20315,7 +20533,12 @@ provided they were unmodified before the refactoring.
Whole words o&nly
- &Mots complets uniquement
+ On trouve, plus couramment, l'expression "Mots entiers"
+ &Mots entiers uniquement
+
+
+ Ignore binary files
+ Ignorer les fichiers binaires
Use re&gular expressions
@@ -20403,7 +20626,7 @@ provided they were unmodified before the refactoring.
Whole Words Only
- Mots complets uniquement
+ Mots entiers uniquement
Use Regular Expressions
@@ -20696,7 +20919,7 @@ To do this, you type this shortcut and a space in the Locator entry field, and t
<html><body style="color:#909090; font-size:14px"><div align='center'><div style="font-size:20px">Open a document</div><table><tr><td><hr/><div style="margin-top: 5px">• File > Open File or Project (%1)</div><div style="margin-top: 5px">• File > Recent Files</div><div style="margin-top: 5px">• Tools > Locate (%2) and</div><div style="margin-left: 1em">- type to open file from any open project</div>%4%5<div style="margin-left: 1em">- type <code>%3<space><filename></code> to open file from file system</div><div style="margin-left: 1em">- select one of the other filters for jumping to a location</div><div style="margin-top: 5px">• Drag and drop files here</div></td></tr></table></div></body></html>
- <html><body style="color:#909090; font-size:14px"><div align='center'><div style="font-size:20px">Ouvrir un document</div><table><tr><td><hr/><div style="margin-top: 5px">• Fichier> Ouvrir un fichier ou un projet (%1)</div><div style="margin-top: 5px">• Fichier > Fichiers récents</div><div style="margin-top: 5px">• Outils > Localiser (%2) et</div><div style="margin-left: 1em">- taper pour ouvrir un fichier à partir de n’importe quel projet ouvert</div>%4%5<div style="margin-left: 1em">- saisir <code>%3<espace><nom du fichier></code> pour ouvrir le fichier à partir du système de fichiers</div><div style="margin-left: 1em">- sélectionner l’un des autres filtres pour accéder à un emplacement donné</div><div style="margin-top: 5px">• Glisser-déposer des fichiers ici</div></td></tr></table></div></body></html>
+ <html><body style="color:#909090; font-size:14px"><div align='center'><div style="font-size:20px">Ouvrir un document</div><table><tr><td><hr/><div style="margin-top: 5px">• Fichier > Ouvrir un fichier ou un projet (%1)</div><div style="margin-top: 5px">• Fichier > Fichiers récents</div><div style="margin-top: 5px">• Outils > Localiser (%2) et</div><div style="margin-left: 1em">- taper pour ouvrir un fichier à partir de n’importe quel projet ouvert</div>%4%5<div style="margin-left: 1em">- saisir <code>%3<espace><nom du fichier></code> pour ouvrir le fichier à partir du système de fichiers</div><div style="margin-left: 1em">- sélectionner l’un des autres filtres pour accéder à un emplacement donné</div><div style="margin-top: 5px">• Glisser-déposer des fichiers ici</div></td></tr></table></div></body></html>
<div style="margin-left: 1em">- type <code>%1<space><pattern></code> to jump to a class definition</div>
@@ -21214,8 +21437,8 @@ To do this, you type this shortcut and a space in the Locator entry field, and t
Type
- <html><head/><body><p>MIME magic data is interpreted as defined by the Shared MIME-info Database specification from <a href="http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html">freedesktop.org</a>.<hr/></p></body></html>
- <html><head/><body><p>Les données magiques MIME sont interprétées conformément à la spécification de la base de données partagée d’informations MIME de <a href="http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html">freedesktop.org</a>.<hr/></p></body></html>
+ <html><head/><body><p>MIME magic data is interpreted as defined by the Shared MIME-info Database specification from <a href="https://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec/">freedesktop.org</a>.<hr/></p></body></html>
+ <html><head/><body><p>Les données magiques MIME sont interprétées conformément à la spécification de la base de données partagée d’informations MIME fournie par <a href="https://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec/">freedesktop.org</a>.<hr/></p></body></html>
String
@@ -21345,19 +21568,24 @@ au gestionnaire de versions (%2) ?
Adding to Version Control Failed
L’ajout au gestionnaire de versions a échoué
-
- Could not add the file
-%1
-to version control (%2)
-
- Impossible d’ajouter le fichier
-%1
-au gestionnaire de versions (%2)
-
+
+ Could not add the following files to version control (%1)
+%2
+... and %n more.
+ %1 = name of VCS system, %2 = lines with file paths
+
+ Impossible d'ajouter les fichiers suivants au contrôle de version (%1)
+%2
+… et %n autre.
+ Impossible d'ajouter les fichiers suivants au contrôle de version (%1)
+%2
+… et %n autres.
+
Could not add the following files to version control (%1)
%2
+ %1 = name of VCS system, %2 = lines with file paths
Impossible d’ajouter les fichiers
%1
au gestionnaire de versions (%2)
@@ -21464,6 +21692,10 @@ Voulez-vous les écraser ?
Failed to rename the include guard in file "%1".
Échec du renommage de la garde d’inclusion dans le fichier « %1 ».
+
+ Failed to set permissions.
+ Impossible de définir les permissions.
+
Unable to create the directory %1.
Impossible de créer le répertoire %1.
@@ -21681,6 +21913,10 @@ Voulez-vous les écraser ?
Cannot reload %1
Impossible de recharger %1
+
+ Not implemented
+ Pas implémenté
+
File was restored from auto-saved copy. Select Save to confirm or Revert to Saved to discard changes.
Le fichier a été restauré depuis une copie d’enregistrement automatique. Sélectionnez Enregistrer pour confirmer ou Retour à l’enregistrement pour effacer les changements.
@@ -21723,6 +21959,26 @@ Voulez-vous l’arrêter ?
Open with VCS (%1)
Ouvrir avec VCS (%1)
+
+ Version control state: added.
+ État du gestionnaire de versions : ajouté.
+
+
+ Version control state: modified.
+ État du gestionnaire de versions : modifié.
+
+
+ Version control state: deleted.
+ État du gestionnaire de versions : supprimé.
+
+
+ Version control state: renamed.
+ État du gestionnaire de versions : renommé.
+
+
+ Version control state: untracked.
+ État du gestionnaire de versions : non suivi.
+
Files Without Write Permissions
Fichiers sans permissions d’écriture
@@ -21886,6 +22142,26 @@ Souhaitez-vous les importer maintenant ?
Do not ask again.
Ne plus demander.
+
+ Terms and Conditions
+ Termes et conditions
+
+
+ Accept
+ Accepter
+
+
+ Decline
+ Refuser
+
+
+ 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.
@@ -22027,8 +22303,8 @@ Vous rencontrerez probablement d’autres problèmes en utilisant cette instance
Édition > Préférences > Environnement > Système
- %1 uses Google Crashpad for collecting crashes and sending them to our backend for processing. Crashpad may capture arbitrary contents from crashed process’ memory, including user sensitive information, URLs, and whatever other content users have trusted %1 with. The collected crash reports are however only used for the sole purpose of fixing bugs.
- %1 utilise Google Crashpad pour recevoir les plantages et les envoyer à notre backend pour traitement. Crashpad peut capturer des contenus arbitraires de la mémoire du processus accidenté, y compris des informations sensibles de l’utilisateur, des URL et tout autre contenu que les utilisateurs ont confié à %1. Les rapports de plantage collectés ne sont toutefois utilisés que dans le seul but de corriger les bogues.
+ %1 uses Google Crashpad for collecting crashes and sending them to Sentry for processing. Crashpad may capture arbitrary contents from crashed process’ memory, including user sensitive information, URLs, and whatever other content users have trusted %1 with. The collected crash reports are however only used for the sole purpose of fixing bugs.
+ %1 utilise Google Crashpad pour collecter des informations sur les plantages et les envoyer à Sentry pour le traitement. Crashpad peut collecter du contenu arbitraire depuis la mémoire du processus planté, incluant des informations utilisateurs sensibles, URLs et n'importe quel autre contenu que les utilisateurs ont fourni à %1. Toutefois, les rapports de plantage collectés ne sont utilisés que dans l'unique but de corriger des bogues.
More information:
@@ -22236,6 +22512,14 @@ Double-cliquez pour modifier l’élément.
Save Contents...
Enregistrer le contenu…
+
+ Copy Contents to Scratch Buffer
+ Copier les contenus vers le brouillon
+
+
+ Failed to open editor for "%1".
+ Impossible d'ouvrir l'éditeur pour « %1 ».
+
Elided %n characters due to Application Output settings
@@ -22309,6 +22593,18 @@ Double-cliquez pour modifier l’élément.
File does not exist.
Le fichier n’existe pas.
+
+ No plugins found.
+ Aucun greffon n'a été trouvé.
+
+
+ More than one plugin found.
+ Plus d'un greffon trouvé.
+
+
+ Plugin failed to resolve dependencies:
+ La résolution des dépendances pour le greffon a échoué :
+
Check Archive
Vérifier l’archive
@@ -22317,6 +22613,22 @@ Double-cliquez pour modifier l’élément.
Checking archive...
Vérification de l’archive…
+
+ Load plugin immediately
+ Charger le greffon immédiatement
+
+
+ %1 will be installed into %2.
+ %1 sera installé dans %2.
+
+
+ Accept Terms and Conditions
+ Accepter les termes et conditions
+
+
+ I accept the terms and conditions.
+ J'accepte les termes et conditions.
+
Canceled.
Annulé.
@@ -22329,14 +22641,6 @@ Double-cliquez pour modifier l’élément.
Archive is OK.
L’archive est OK.
-
- Plugin requires an incompatible version of %1 (%2).
- Le greffon nécessite une version incompatible de %1 (%2).
-
-
- Did not find %1 plugin.
- Le greffon %1 est introuvable.
-
Install Location
Emplacement de l’installation
@@ -22365,10 +22669,6 @@ Double-cliquez pour modifier l’élément.
Summary
Résumé
-
- "%1" will be installed into "%2".
- « %1 » sera installé dans « %2 ».
-
Overwrite File
Écraser le fichier
@@ -22425,14 +22725,6 @@ Double-cliquez pour modifier l’élément.
<br/>Built on %1 %2<br/>
<br/>Construit sur %1 %2<br/>
-
- <h3>%1</h3>%2<br/>%3%4%5<br/>Copyright 2008-%6 %7. All rights reserved.<br/><br/>The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.<br/>
- <h3>%1</h3>%2<br/>%3%4%5<br/>Copyright 2008-%6 %7. Tous droits réservés.<br/><br/>Le programme est fourni tel quel, sans garantie d’aucune sorte, y compris la garantie de conception, de qualité marchande et d’adéquation à un usage particulier.<br/>
-
-
- The Qt logo as well as Qt®, Qt Quick®, Built with Qt®, Boot to Qt®, Qt Quick Compiler®, Qt Enterprise®, Qt Mobile® and Qt Embedded® are registered trademarks of The Qt Company Ltd.
- Le logo Qt ainsi que Qt®, Qt Quick®, Built with Qt®, Boot to Qt®, Qt Quick Compiler®, Qt Enterprise®, Qt Mobile® et Qt Embedded® sont des marques déposées de The Qt Company Ltd.
-
Haskell Editor
Éditeur Haskell
@@ -22465,6 +22757,14 @@ Double-cliquez pour modifier l’élément.
Markdown Editor
Éditeur de Markdown
+
+ Secret storage is not available! Your values will be stored as plaintext in the settings!
+ Le coffre-fort n'est pas disponible ! Vos valeurs seront stockées en clair dans les paramètres !
+
+
+ You can install libsecret or KWallet to enable secret storage.
+ Vous pouvez installer libsecret ou KWallet pour activer le coffre-fort.
+
QtC::CppEditor
@@ -23862,7 +24162,7 @@ Ces préfixes sont utilisés en complément au répertoire actuel pour basculer
Switch Between Function Declaration/Definition
- Changer entre la définition et déclaration de la fonction
+ Changer entre la définition et la déclaration de la fonction
Open Function Declaration/Definition in Next Split
@@ -24369,6 +24669,14 @@ Ces préfixes sont utilisés en complément au répertoire actuel pour basculer
Re-order Member Function Definitions According to Declaration Order
Ré-ordonner les définitions de fonction membres suivant l'ordre de déclaration
+
+ Invalid location for %1.
+ Emplacement invalide pour %1.
+
+
+ Could not create "%1": %2
+ Impossible de créer « %1 » : %2
+
QtC::Cppcheck
@@ -24668,10 +24976,30 @@ Souhaitez-vous tout de même les afficher ?
Always adds a breakpoint on the <i>%1()</i> function.
Ajoute toujours un point d’arrêt sur la fonction <i>%1()</i>.
+
+ Show warnings for unsupported breakpoints
+ Afficher un avertissement pour les points d'arrêt non pris en charge
+
+
+ Shows a warning on debugger start-up when breakpoints are requested which are not supported by the selected debugger engine.
+ Affiche un avertissement au démarrage du débogueur lorsque des points d'arrêt ne sont pas pris en charge par le débogueur sélectionné.
+
Behavior
Comportement
+
+ User Interface
+ Interface utilisateur
+
+
+ When Debugging Stops
+ Lorsque le débogage s'arrête
+
+
+ Allow inferior calls in debugging helper
+ Permettre les appels à l'inférieur dans l'assistant au débogage
+
Default array size:
Taille de tableau par défaut :
@@ -26295,10 +26623,6 @@ par défaut de l’utilisateur au démarrage du débogueur.
%1 (Previous)
%1 (précédente)
-
- %1 (Restored)
- %1 (restaurée)
-
Expression too complex
Expression trop complexe
@@ -26804,7 +27128,8 @@ Il peut vous être demandé de partager le contenu de ce journal lorsque vous si
Global Debugger &Log
- &Journal du débogueur général
+ Je pense que "Global" se réfère au log et non au débogueur.
+ &Journal général du débogueur
Reload Debugging Helpers
@@ -27193,9 +27518,13 @@ Il peut vous être demandé de partager le contenu de ce journal lorsque vous si
Attach to Running Debug Server...
Attacher à un serveur de débogage en cours d’exécution…
+
+ Load Last Core File
+ Charger le dernier fichier core
+
Start and Break on Main
- Démarrer et s’arrêter sur le Main
+ Démarrer et s'arrêter sur la fonction Main
DAP
@@ -27322,6 +27651,14 @@ Il peut vous être demandé de partager le contenu de ce journal lorsque vous si
Start DAP Debugging
Commencer le débogage DAP
+
+ coredumpctl did not find any cores created by systemd-coredump.
+ coredumpctl n'a pas trouvé de fichier core créé par systemd-coredump.
+
+
+ Last Core file "%1"
+ Dernier fichier core « %1 »
+
in Debug mode
en mode Debug
@@ -27344,7 +27681,8 @@ Il peut vous être demandé de partager le contenu de ce journal lorsque vous si
<html><head/><body><p>You are trying to run the tool "%1" on an application in %2 mode. The tool is designed to be used %3.</p><p>Run-time characteristics differ significantly between optimized and non-optimized binaries. Analytical findings for one mode may or may not be relevant for the other.</p><p>Running tools that need debug symbols on binaries that don't provide any may lead to missing function names or otherwise insufficient output.</p><p>Do you want to continue and run the tool in %2 mode?</p></body></html>
- <html><head/><body><p>Vous essayez d’exécuter l’outil « %1 » sur une application en mode %2. L’outil est conçu pour être utilisé en mode %3.</p><p>Les caractéristiques d’exécution diffèrent considérablement entre les binaires optimisés et non optimisés. L’exécution d’outils nécessitant des symboles de débogage sur des binaires qui n’en fournissent pas peut conduire à des noms de fonctions manquants ou à des résultats insuffisants.</p><p>Voulez-vous continuer et exécuter l’outil en mode %2 ?</p></body></html>
+ %3 est remplacé par la chaîne précédente (on optimized code...)
+ <html><head/><body><p>Vous essayez d'exécuter l'outil « %1 » sur une application en mode %2. L'outil est conçu pour être utilisé %3.</p><p>Les caractéristiques d'exécution diffèrent considérablement entre les binaires optimisés et non optimisés. L'exécution d'outils nécessitant des symboles de débogage sur des binaires qui n'en fournissent pas peut conduire à des noms de fonctions manquants ou à des résultats insuffisants.</p><p>Voulez-vous continuer et exécuter l'outil en mode %2 ?</p></body></html>
Start
@@ -27967,6 +28305,14 @@ Vous pouvez choisir un autre canal de communication ici, comme une ligne série
&Recent:
&Récent :
+
+ 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
+
Attach to %1
Attacher à %1
@@ -28955,6 +29301,14 @@ L’accès au module ou la mise en place de points d’arrêt par fichier et par
Could not determine debugger type
Impossible de déterminer le type de débogueur
+
+ Invalid debugger command
+ Commande de débogueur invalide
+
+
+ Invalid working directory
+ Répertoire de travail invalide
+
Type of Debugger Backend
Type du backend du débogueur
@@ -29775,6 +30129,14 @@ La recompilation du projet peut aider.
Docker
Docker
+
+ 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)
@@ -29835,15 +30197,6 @@ 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.
-
- Docker daemon appears to be not running. Verify daemon is up and running and reset the Docker daemon in Docker device preferences or restart %1.
- %1 is the application name (Qt Creator)
- Le démon Docker ne semble pas fonctionner. Vérifiez que le démon est présent et en cours d'exécution et réinitialisez le démon docker dans les paramètres du périphérique docker ou redémarrez %1.
-
-
- Failed to create container shell (Out of memory).
- Échec lors de la création du shell du container (mémoire insuffisante).
-
Device is shut down
Le périphérique a été fermé
@@ -29888,6 +30241,14 @@ La recompilation du projet peut aider.
Docker Device
Périphérique Docker
+
+ Failed to inspect image: %1
+ Échec lors de l'inspection de l'image : %1
+
+
+ Could not parse image inspect output: %1
+ Impossible d'analyser la sortie d'inspection de l'image : %1
+
localSource: No mount point found for %1
localSource : aucun point de montage trouvé pour %1
@@ -30114,24 +30475,13 @@ La recompilation du projet peut aider.
Extensions
Extensions
-
- More information
- Plus d'informations
-
Extension details
Détails de l'extension
-
- Pack contains %n plugins.
-
- Le paquet contient %n greffon.
- Le paquet contient %n greffons.
-
-
- Load on start
- Charger au démarrage
+ Active
+ Active
Restart Now
@@ -30149,6 +30499,18 @@ La recompilation du projet peut aider.
Not loaded
Non chargé
+
+ No details to show
+ Aucun détail à afficher
+
+
+ Select an extension to see more information about it.
+ Sélectionnez une extension pour obtenir plus d'informations sur celle-ci.
+
+
+ Last Update
+ Dernière mise à jour
+
Tags
Étiquettes
@@ -30189,6 +30551,34 @@ La recompilation du projet peut aider.
Code: %1.
Code : %1.
+
+ Inactive
+ Inactive
+
+
+ Last updated
+ Date de mise à jour
+
+
+ Name
+ Nom
+
+
+ All
+ Toutes
+
+
+ Extension packs
+ Packs d'extensions
+
+
+ Individual extensions
+ Extensions invidivuelles
+
+
+ No extension found!
+ Aucune extension n'a été trouvée !
+
Manage Extensions
Gérer les extensions
@@ -30197,6 +30587,14 @@ La recompilation du projet peut aider.
Search
Rechercher
+
+ Filter by: %1
+ Filtrer par : %1
+
+
+ Sort by: %1
+ Trier par : %1
+
Install...
Installer…
@@ -30206,8 +30604,44 @@ La recompilation du projet peut aider.
Utiliser un dépôt externe
- Repository: %1
- Dépôt : %1
+ Server URL:
+ URL du serveur :
+
+
+ Note
+ Note
+
+
+ %1 does not check extensions from external vendors for security flaws or malicious intent, so be careful when installing them, as it might leave your computer vulnerable to attacks such as hacking, malware, and phishing.
+ %1 ne vérifie pas la présence de faille de sécurité ou de comportement malicieux dans les extensions provenant de distributeurs externes. Veuillez faire preuve de prudence lors de leur installation, celles-ci pourraient rendre votre ordinateur vulnérable à des piratages informatique ou permettre le hameçonnage.
+
+
+ Use External Repository
+ Utiliser un dépôt externe
+
+
+ Install Extension...
+ Installer une extension…
+
+
+ Plugin changes will take effect after restart.
+ Les modifications apportées au greffon prendront effet après le redémarrage.
+
+
+ Browser
+ Navigateur
+
+
+ Documentation
+ Documentation
+
+
+ More Information
+ Plus d'informations
+
+
+ New
+ Nouveau
@@ -30220,9 +30654,17 @@ La recompilation du projet peut aider.
Version:
Version :
+
+ Vendor Id:
+ Identifiant du distributeur :
+
Vendor:
- Vendeur :
+ Distributeur :
+
+
+ Documentation:
+ Documentation :
Location:
@@ -30261,6 +30703,10 @@ La recompilation du projet peut aider.
Group:
Groupe :
+
+ Id:
+ Identifiant :
+
Compatibility version:
cf libs/extensionsystem/plugindetailsview.ui et PluginSpecPrivate::provides() : version minimum compatible
@@ -30315,14 +30761,12 @@ La recompilation du projet peut aider.
Message d’erreur :
- %1 (deprecated)
- %1 is a plugin name
- %1 (déprécié)
+ deprecated
+ déprécié
- %1 (experimental)
- %1 is a plugin name
- %1 (expérimental)
+ experimental
+ expérimental
Path: %1
@@ -30490,6 +30934,14 @@ Raison : %3
Disable Plugin
Désactiver le greffon
+
+ No callback set to accept terms and conditions
+ Aucun retour défini pour accepter les termes et conditions
+
+
+ You did not accept the terms and conditions
+ Vous n'avez pas accepté les termes et conditions
+
Cannot load plugin because dependency failed to load: %1(%2)
Reason: %3
@@ -30580,6 +31032,14 @@ Raison : %3
Plugin meta data not found
Les métadonnées du greffon n’ont pas été trouvées
+
+ Plugin id "%1" must be lowercase
+ L'identifiant du greffon « %1 » doit être en minuscules
+
+
+ Terms and conditions: %1
+ Termes et conditions : %1
+
Invalid platform specification "%1": %2
La spécification de la plate-forme « %1 » n’est pas valide : %2
@@ -30909,7 +31369,7 @@ Raison : %3
Plugin Emulation
- Émulation de plug-in
+ Émulation de greffon
Use smartcase
@@ -30917,7 +31377,7 @@ Raison : %3
Use wrapscan
- Utiliser recherche circulaire
+ Utiliser la recherche circulaire
Use ignorecase
@@ -31877,7 +32337,7 @@ Raison : %3
Cannot find parent revisions of "%1" in "%2": %3
- Failed to find parent revisions of a SHA1 for "annotate previous"
+ Failed to find parent revisions of a hash for "annotate previous"
Impossible de trouver la révision parente de « %1 » dans « %2 » : %3
@@ -32116,6 +32576,15 @@ 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.
+
Git Diff Files
Git Diff les fichiers
@@ -32415,10 +32884,6 @@ Valider maintenant ?
Undo Uncommitted Changes for "%1"
Annuler les changements non committés pour « %1 »
-
- Current &Project
- &Projet actuel
-
Alt+G,Alt+K
Alt+G,Alt+K
@@ -32576,44 +33041,14 @@ Valider maintenant ?
Meta+G,Meta+U
Meta+G, Meta+U
-
- Diff Current Project
- Avoid translating "Diff"
- Réaliser un diff du projet actuel
-
-
- Diff Project "%1"
- Avoid translating "Diff"
- Réaliser un diff du projet « %1 »
-
Meta+G,Meta+Shift+D
Meta+G, Meta+Maj+D
-
- Log Project
- Avoid translating "Log"
- Réaliser un log du projet
-
-
- Log Project "%1"
- Avoid translating "Log"
- Réaliser un log du projet « %1 »
-
Meta+G,Meta+K
Meta+G, Meta+K
-
- Clean Project...
- Avoid translating "Clean"
- Nettoyer le projet…
-
-
- Clean Project "%1"...
- Avoid translating "Clean"
- Nettoyer le projet « %1 »…
-
&Local Repository
Dépôt &local
@@ -32702,6 +33137,59 @@ 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
+
+
+ Alt+G,Alt+S
+ Alt+G, Alt+S
+
+
+ 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
@@ -32712,7 +33200,7 @@ Valider maintenant ?
Manage Remotes...
-
+ Gérer les dépôts distants…
Git &Tools
@@ -32901,6 +33389,14 @@ au lieu de son répertoire d’installation lorsqu’il est exécuté en dehors
Finds the commit that introduced the line before it was moved.
Trouve le commit ayant introduit la ligne avant qu'elle ait été déplacée.
+
+ Show commit subject
+ Afficher le sujet du commit
+
+
+ Adds the commit subject directly to the annotation.
+ Ajoute le sujet du commit directement à l'annotation.
+
The binary "%1" could not be located in the path "%2"
Le binaire « %1 » n’a pas pu être localisé dans le chemin « %2 »
@@ -33237,12 +33733,13 @@ Vous pouvez choisir entre mettre les changements dans une remise (« stash&
Modifications
- &Query:
- &Requête :
+ Change #, hash, tr:id, owner:email or reviewer:email
+ Je ne suis pas sûr pour celle-ci
+ Changer #, hash, tr:id, owner:email ou reviewer:email
- Change #, SHA-1, tr:id, owner:email or reviewer:email
- Changer #, SHA-1, tr:id,owner:email ou reviewer:email
+ &Query:
+ &Requête :
Details
@@ -33629,10 +34126,6 @@ Non coché - La modification n’est pas un brouillon.
... Include older branches ...
… Inclusion des anciennes branches …
-
- Sha1
- SHA1
-
Reset to:
Réinitialiser à :
@@ -33653,6 +34146,11 @@ Non coché - La modification n’est pas un brouillon.
Hard
Hard
+
+ Hash
+ ou hashage (que j'ai vu autre part dans la traduction de QtCreator)
+ Hachage
+
Soft
Soft
@@ -35207,10 +35705,6 @@ Souhaitez-vous les écraser ?
Deployment failed.
Échec lors du déploiement.
-
- The Info.plist might be incorrect.
- Le fichier Info.plist est peut-être incorrecte.
-
iOS Device
Périphérique iOS
@@ -35562,10 +36056,6 @@ Date d'expiration : %3
Invalid Empty UDID.
UDID vide invalide.
-
- Failed to start simulator app.
- Échec du démarrage du simulateur.
-
Simulator device is not available. (%1)
Le simulateur n'est pas disponible. (%1)
@@ -35785,7 +36275,7 @@ Date d'expiration : %3
Language Server Diagnostics
- Diagnostiques du serveur de langage
+ Diagnostics du serveur de langage
Issues provided by the Language Server in the current document.
@@ -36020,6 +36510,10 @@ Voir la documentation spécifique au serveur de langage pour la liste des param
Log File
Réaliser un log du fichier
+
+ No client selected
+ Aucun client n'est sélectionné
+
Language Client Inspector
Inspecteur du fournisseur de langages
@@ -36032,6 +36526,10 @@ Voir la documentation spécifique au serveur de langage pour la liste des param
Language Server:
Serveur de langage :
+
+ Send message
+ Envoyer un message
+
Log
Journal
@@ -36215,10 +36713,51 @@ Voir la documentation spécifique au serveur de langage pour la liste des param
Extension setup function returned error: %1
La fonction d'installation de l'extension a renvoyé l'erreur %1
+
+ Lua
+ Lua
+
+
+ New Script...
+ Nouveau script…
+
+
+ Scripting
+ Comment traduire?
+ Scripting
+
+
+ Run Current Script
+ Exécuter le script actuel
+
Failed to load plugin %1: %2
Échec de chargement du greffon %1 : %2
+
+ Run script "%1"
+ Exécuter le script « %1 »
+
+
+ Run
+ Exécuter
+
+
+ Edit
+ Modifier
+
+
+ Failed to read script "%1": %2
+ Échec lors de la lecture du script « %1 » : %2
+
+
+ Evaluate simple Lua statements.<br>Literal '}' characters must be escaped as "\}", '\' characters must be escaped as "\\", '#' characters must be escaped as "\#", and "%{" must be escaped as "%\{".
+ Évaluer des instructions Lua simples.<br>Les caractères littéraux « } » doivent être échappés sous la forme « \} », les caractères « \ » doivent être échappés sous la forme « \\ », les caractères « # » doivent être échappés sous la forme « \# » et les caractères « %{ » doivent être échappés sous la forme « %\{ ».
+
+
+ No Lua statement to evaluate.
+ Aucune expression Lua à évaluer.
+
QtC::Macros
@@ -37747,10 +38286,6 @@ Utile si le répertoire de compilation est corrompu ou lors d’une recompilatio
Current Build Target
Cible de construction courante
-
- &Compiler path:
- &Chemin du compilateur :
-
&Compiler version:
Version du &compilateur :
@@ -39196,10 +39731,19 @@ Title of a the cloned RunConfiguration window, text of the window
Show the output that generated this issue in Compile Output.
Affiche la sortie qui a généré le problème dans la sortie de compilation.
+
+ Discarded excessive compile output.
+ abandonné ? jeté ?
+ Surplus de la sortie de compilation abandonné.
+
Open Compile Output when building
Ouvrir la sortie de compilation lors de la compilation
+
+ Discards compile output that continuously comes in faster than it can be handled.
+ Abandonne la sortie de compilation arrivant plus rapidement que ce qui peut être géré.
+
Compile Output
Sortie de compilation
@@ -39360,6 +39904,7 @@ Title of a the cloned RunConfiguration window, text of the window
Projects
+ title in expanded session items in welcome mode
Projets
@@ -39656,6 +40201,10 @@ Title of a the cloned RunConfiguration window, text of the window
Open Workspace...
Ouvrir l'espace de travail…
+
+ VCS Log Directory
+ Répertoire des logs VCS
+
Add New...
Ajouter un nouveau…
@@ -39844,6 +40393,14 @@ Souhaitez-vous les ignorer ?
Duplicate File...
Dupliquer le fichier…
+
+ Create Header File
+ Créer un fichier d'en-tête
+
+
+ Create Source File
+ Créer un fichier source
+
Set "%1" as Active Project
Définir « %1 » comme le projet actif
@@ -39880,6 +40437,10 @@ Souhaitez-vous les ignorer ?
<b>Warning:</b> This file is generated.
<b>Avertissement :</b> ce fichier est généré.
+
+ <b>Warning:</b> This file is inside the build directory.
+ <b>Avertissement :</b> le fichier est dans le répertoire de compilation.
+
<b>Warning:</b> This file is outside the project directory.
<b>Avertissement :</b> ce fichier est en dehors du répertoire du projet.
@@ -39957,6 +40518,18 @@ Souhaitez-vous les ignorer ?
Failed opening project "%1": No plugin can open project type "%2".
Échec de l’ouverture du projet « %1 » : aucun greffon ne peut ouvrir le type de projet « %2 ».
+
+ The following files could not be renamed: %1
+ Les fichiers suivants n'ont pas pu être renommés : %1
+
+
+ The following files were renamed, but their project files could not be updated accordingly: %1
+ Les fichiers suivants ont été renommés, mais les fichiers de projet n'ont pas pu être mis à jour en conséquence : %1
+
+
+ Renaming Did Not Fully Succeed
+ Le renommage n'a pas réussi
+
Ignore All Errors?
Ignorer toutes les erreurs ?
@@ -40084,24 +40657,8 @@ Veuillez réessayer.
Échec de l’ajout du nouveau fichier « %1 » au projet.
- The project file %1 cannot be automatically changed.
-
-Rename %2 to %3 anyway?
- Le fichier de projet %1 ne peut pas être modifié automatiquement.
-
-Renommer quand même %2 en %3 ?
-
-
- The file %1 was renamed to %2, but the project file %3 could not be automatically changed.
- Le fichier %1 a été renommé en %2, mais le fichier de projet %3 ne peut être modifié automatiquement.
-
-
- The file %1 could not be renamed %2.
- Le fichier %1 n’a pas pu être renommé en %2.
-
-
- Cannot Rename File
- Impossible de renommer le fichier
+ %1 Log Directory
+ Répertoire des logs de %1
Locates files from all project directories. Append "+<number>" or ":<number>" to jump to the given line number. Append another "+<number>" or ":<number>" to jump to the column number as well.
@@ -40499,22 +41056,30 @@ Renommer quand même %2 en %3 ?
&Keep Running
&Continuer l’exécution
+
+ Requesting process to stop ....
+ Demande d'arrêt du processus…
+
+
+ Stopping process forcefully ....
+ Arrêt du processus avec force…
+
+
+ Process unexpectedly did not finish.
+ Le processus ne s'est pas terminé comme attendu.
+
+
+ Connectivity lost?
+ Connexion perdue ?
+
Cannot retrieve debugging output.
Impossible d’obtenir la sortie du débogage.
-
- Remote process did not finish in time. Connectivity lost?
- Le processus distant ne s'est pas terminé dans le délai imparti. Connexion perdue ?
-
Cannot run: No command given.
Exécution impossible : aucune commande n’a été donnée.
-
- %1 crashed.
- %1 a planté.
-
The process was ended forcefully.
Le processus a été stoppé avec force.
@@ -41850,7 +42415,7 @@ Sélectionne un Qt optimisé pour bureaux pour compiler l'application, si d
Nim Script File
-
+ Fichier de script Nim
Creates an empty Nim file using UTF-8 charset.
@@ -42016,6 +42581,14 @@ Sélectionne un Qt optimisé pour bureaux pour compiler l'application, si d
<No other projects in this session>
<Pas d’autres projets dans cette session>
+
+ Deploy dependencies
+ Déployer les dépendances
+
+
+ Do not just build dependencies, but deploy them as well.
+ Ne construit pas seulement les dépendances, mais effectue aussi le déploiement de celles-ci.
+
Dependencies
Dépendances
@@ -42314,10 +42887,6 @@ The name of the build configuration created by default for a generic project.Copy Steps From Another Kit...
Copier les étapes d’un autre kit…
-
- Enable Kit
- Activer le kit
-
The process crashed.
Le processus a planté.
@@ -42539,8 +43108,8 @@ fails because Clang does not understand the target architecture.
<nobr><b>ABI :</b> %1
- not up-to-date
- pas à jour
+ Not all compilers are set up correctly.
+ Tous les compilateurs n'ont pas été correctement configurés.
This toolchain is invalid.
@@ -42679,6 +43248,15 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u
Word-wrap output
Retour à la ligne automatique
+
+ Discard excessive output
+ A revoir
+ Abandonner l'excédant de la sortie
+
+
+ If this option is enabled, application output will be discarded if it continuously comes in faster than it can be handled.
+ Si cette option est activée, la sortie de l'application sera perdue si celle-ci ne peut être gérée.
+
Clear old output on a new run
Effacer l’ancienne sortie lors d’une nouvelle exécution
@@ -42868,10 +43446,6 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u
Desktop
Desktop
-
- User requested stop. Shutting down...
- L’utilisateur a demandé l’arrêt. Arrêt en cours…
-
%1 (default for %2)
%1 (défaut pour %2)
@@ -43000,10 +43574,6 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u
Sys Root
Racine du système
-
- <No compiler>
- <Aucun compilateur>
-
Compiler
Compilateur
@@ -43280,10 +43850,6 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u
Comma-separated list of mkspecs.
Liste de mkspecs séparés par une virgule.
-
- &Compiler path:
- Chemin du &compilateur :
-
&Make path:
Chemin de &make :
@@ -43467,7 +44033,8 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u
Standard error
- Sortie erreur (stderr)
+ A revoir -> Sortie d'erreur
+ Sortie d'erreur (stderr)
E&rror message:
@@ -43561,6 +44128,18 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u
DebugBreakProcess failed:
DebugBreakProcessus a échoué :
+
+ %1 does not exist. If you built %2 yourself, check out https://code.qt.io/cgit/qt-creator/binary-artifacts.git/.
+ L'exécutable %1 n'existe pas. Consultez https://code.qt.io/cgit/qt-creator/binary-artifacts.git/ si vous construisez l'application %2 par vous-même.
+
+
+ Cannot start %1. Check src\tools\win64interrupt\win64interrupt.c for more information.
+ Impossible de démarrer %1. Consultez le fichier src\tools\win64interrupt\win64interrupt.c pour plus d'informations.
+
+
+ could not break the process.
+ impossible d'arrêter le processus.
+
Import Build From...
Importer la compilation depuis…
@@ -43926,7 +44505,7 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u
Files in All Project Directories:
- Fichiers dans tous les répertoires du projet :
+ Fichiers dans tous les répertoires du projet :
Setting
@@ -44088,6 +44667,10 @@ au projet « %2 ».
Échec de l’ajout d’un ou plusieurs fichiers au projet
« %1 » (%2).
+
+ Subproject "%1" outside of "%2".
+ Sous-projet « %1 » en dehors de « %2 ».
+
Project File
Fichier du projet
@@ -44602,10 +45185,6 @@ Que doit faire %1 maintenant ?
X11 Forwarding:
X11 forwarding :
-
- Forward to local display
- Déporter vers un affichage local
-
Source directory:
Répertoire source :
@@ -44654,6 +45233,7 @@ Ces fichiers sont préservés.
Files
+ title in expanded session items in welcome mode
Fichiers
@@ -44770,8 +45350,12 @@ Ces fichiers sont préservés.
indisponible
- You can edit this configuration inside the .qtcreator/project.json file.
- Vous pouvez modifier cette configuration dans le fichier .qtcreator/project.json.
+ Clone the configuration to change it. Or, make the changes in the .qtcreator/project.json file.
+ Cloner la configuration ou modifier le fichier .qtcreator/project.json pour la modifier.
+
+
+ Workspace Manager
+ Gestionnaire des espaces de travail
Exclude from Project
@@ -44781,6 +45365,40 @@ Ces fichiers sont préservés.
Rescan Workspace
Ré-analyser l'espace de travail
+
+ You will need at least one port for QML debugging.
+ Vous avez besoin d'au moins un port pour le débogage QML.
+
+
+ Machine type:
+ Type de machine :
+
+
+ Physical Device
+ Périphérique physique
+
+
+ Free ports:
+ Ports libres :
+
+
+ %1 at "%2"
+ toolchain 'name' at 'path'
+ %1 dans « %2 »
+
+
+ &Compiler path
+ &Emplacement du compilateur
+
+
+ %1 compiler path
+ %1 = programming language
+ Emplacement du compilateur %1
+
+
+ Provide manually
+ Fournir manuellement
+
QtC::Python
@@ -45375,8 +45993,14 @@ Ces fichiers sont préservés.
Modifier…
- Additional Qbs Profile Settings
- Paramètres supplémentaires du profil Qbs
+ Qbs Profile Additions
+ Ajouts au profil Qbs
+
+
+ Additional module properties to set in the Qbs profile corresponding to this kit.
+You will rarely need to do this.
+ Les propriétés de module supplémentaires à définir au profil Qbs correspondant à ce kit.
+Vous avez rarement besoin de ceci.
Generated files
@@ -45800,6 +46424,10 @@ Les fichiers affectés sont :
%1 error message
%1 La compilation sera écrasée.
+
+ Starting qmake failed with the following error: %1
+ Échec du démarrage de qmake avec l'erreur suivante : %1
+
The build directory should be at the same level as the source directory.
Le répertoire de compilation doit être au même niveau que le répertoire source.
@@ -47090,6 +47718,14 @@ connaître une telle URI à l'éditeur QML.
JavaScript can break the visual tooling in Qt Design Studio.
JavaScript peut casser les outils visuels dans Qt Design Studio.
+
+ Arbitrary functions and function calls outside of a Connections object are not supported in a UI file (.ui.qml).
+ Les fonctions arbitraires et les appels de fonctions en dehors d'un objet Connections ne sont pas pris en charge dans un fichier UI (.ui.qml).
+
+
+ A when condition cannot contain an object.
+ Une condition when ne peut pas contenir un objet.
+
Expression statements should be assignments, calls or delete expressions only.
Les définitions d’expression devraient être des expression d’assignation, d’appel ou de suppression uniquement.
@@ -47186,10 +47822,6 @@ Pour plus d'informations, allez à la documentation « Checking Code S
This type (%1) is not supported in a UI file (.ui.qml).
Le type (%1) n'est pas supporté dans un fichier UI (.ui.qml).
-
- Functions are not supported in a UI file (.ui.qml).
- Les fonctions ne sont pas supportées dans un fichier UI (.ui.qml).
-
JavaScript blocks are not supported in a UI file (.ui.qml).
Les blocs de code JavaScript ne sont pas supportés dans un fichier UI (.ui.qml).
@@ -47572,6 +48204,10 @@ Veuillez compiler l’application qmldump à partir de la page d’options à pr
Create .qmlls.ini files for new projects
Créer des fichiers .qmlls.ini pour les nouveaux projets
+
+ Enable semantic highlighting (experimental)
+ Activer la mise en évidence sémantique (expérimental)
+
Enabled
Activé
@@ -47600,6 +48236,14 @@ 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
+
Open .ui.qml files with:
Ouvrir les fichiers .ui.qml avec :
@@ -48960,8 +49604,8 @@ Qt Design Studio nécessite un projet fondé sur .qmlproject pour ouvrir le fich
Exporter le projet
- Enable Automatic CMake Generation
- Activer la génération automatique de CMake
+ Enable CMake Generator
+ Activer le générateur CMake
@@ -49101,10 +49745,6 @@ Qt Design Studio nécessite un projet fondé sur .qmlproject pour ouvrir le fich
QCC
QCC
-
- &Compiler path:
- Chemin du &compilateur :
-
SDP path:
SDP refers to 'Software Development Platform'.
@@ -49576,6 +50216,14 @@ Le déploiement vers ce répertoire entrainera la suppression des fichiers déj
The following ABIs are currently not supported: %1
Les ABI suivantes ne sont actuellement pas prises en charge : %1
+
+ Error
+ Erreur
+
+
+ Warning
+ Avertissement
+
Select a qmake Executable
Sélectionner un exécutable qmake
@@ -49728,10 +50376,6 @@ Le déploiement vers ce répertoire entrainera la suppression des fichiers déj
Path to the qmake executable
Chemin vers l’exécutable de qmake
-
- %1 (invalid)
- %1 (invalide)
-
Qt version
Version de Qt
@@ -50079,6 +50723,10 @@ Le processus de contrôle n'a pas pu démarrer.
SSH connection failure:
Échec de connexion SSH :
+
+ The process crashed.
+ Le processus a planté.
+
Remote Linux
Linux distant
@@ -50095,10 +50743,6 @@ Le processus de contrôle n'a pas pu démarrer.
Can't send control signal to the %1 device. The device might have been disconnected.
Impossible d'envoyer un signal de contrôle au périphérique %1. Le périphérique est peut-être déconnecté.
-
- Device "%1" is disconnected.
- Le périphérique « %1 » est déconnecté.
-
Deploy Public Key...
Déployer la clé publique…
@@ -52697,7 +53341,7 @@ Impossible d'ouvrir le fichier « %1 ».
Log count:
- Nombre d’entrées de log :
+ Nombre d'entrées de log :
Subversion Command
@@ -52719,10 +53363,6 @@ Impossible d'ouvrir le fichier « %1 ».
Alt+S,Alt+A
Alt+S,Alt+A
-
- Diff Project
- Faire un diff sur le projet
-
Diff Current File
Faire un diff du fichier actuel
@@ -52771,10 +53411,6 @@ Impossible d'ouvrir le fichier « %1 ».
Describe...
Décrire…
-
- Project Status
- État du projet
-
Triggers a Subversion version control operation.
Déclenche une opération du gestionnaire de versions Subversion.
@@ -52807,38 +53443,6 @@ Impossible d'ouvrir le fichier « %1 ».
Revert "%1"...
Rétablir « %1 »…
-
- Diff Project "%1"
- Réaliser un diff du projet « %1 »
-
-
- Status of Project "%1"
- État du projet « %1 »
-
-
- Log Project
- Réaliser un log du projet
-
-
- Log Project "%1"
- Réaliser un log du projet « %1 »
-
-
- Update Project
- Mettre à jour le projet
-
-
- Update Project "%1"
- Mettre à jour le projet « %1 »
-
-
- Commit Project
- Faire un commit du projet
-
-
- Commit Project "%1"
- Faire un commit du projet « %1 »
-
Diff Repository
Réaliser un diff du dépôt
@@ -52867,6 +53471,46 @@ Impossible d'ouvrir le fichier « %1 ».
Revert repository
Rétablir le dépôt
+
+ Diff Project Directory
+ Réaliser un diff du répertoire du projet
+
+
+ Diff Directory of Project "%1"
+ Réaliser un diff du répertoire du projet « %1 »
+
+
+ Project Directory Status
+ État du répertoire du projet
+
+
+ Status of Directory of Project "%1"
+ État du répertoire du projet « %1 »
+
+
+ Log Project Directory
+ Log du répertoire du projet
+
+
+ Log Directory of Project "%1"
+ Log du répertoire du projet « %1 »
+
+
+ Update Project Directory
+ Mettre à jour le répertoire du projet
+
+
+ Update Directory of Project "%1"
+ Mettre à jour le répertoire du projet « %1 »
+
+
+ Commit Project Directory
+ Commit le répertoire du projet
+
+
+ Commit Directory of Project "%1"
+ Commit le répertoire du projet « %1 »
+
Revert all pending changes to the repository?
Rétablir tous les changements en attente du dépôt ?
@@ -53217,6 +53861,22 @@ Impossible d'ouvrir le fichier « %1 ».
Edit Bookmark
Modifier le signet
+
+ Ctrl+Alt+.
+ Ctrl+Alt+.
+
+
+ Ctrl+Alt+,
+ Ctrl+Alt+,
+
+
+ Sort by Filenames
+ Trier par nom de fichiers
+
+
+ Ctrl+Alt+P
+ Ctrl+Alt+P
+
Line number:
Numéro de ligne :
@@ -54547,6 +55207,14 @@ Pour styliser les opérateurs définis par l’utilisateur, utilisez l’opérat
Macros.
Macros.
+
+ Attribute
+ Attribut
+
+
+ Attributes.
+ Attributs.
+
Whitespace.
Will not be applied to whitespace in comments and strings.
@@ -55011,7 +55679,8 @@ Ne s’applique pas aux espaces blancs dans les commentaires et dans les chaîne
Underline
-
+ Vu dans LibreOffice
+ Soulignage
Color:
@@ -55198,6 +55867,22 @@ Ne s’applique pas aux espaces blancs dans les commentaires et dans les chaîne
Remember My Choice
Se rappeler de mon choix
+
+ Fold Recursively
+ Plier de manière récursive
+
+
+ Fold All
+ Tout plier
+
+
+ Unfold Recursively
+ Déplier de manière récursive
+
+
+ Unfold All
+ Tout déplier
+
Zoom: %1%
Zoom : %1 %
@@ -56022,8 +56707,9 @@ Influence l’indentation des lignes de continuation.
Git Blame
- Copy SHA1 to Clipboard
- Copier le SHA1 dans le presse-papiers
+ Copy Hash to Clipboard
+ J'ai vu hashage?
+ Copier le hachage dans le presse-papiers
<b>Note:</b> "%1" or "%2" is enabled in the instant blame settings.
@@ -56166,6 +56852,26 @@ Influence l’indentation des lignes de continuation.
Reloads the type hierarchy for the symbol under the cursor.
Recharge la hiérarchie de type pour le symbole sous le curseur.
+
+ Select Previous Suggestion
+ Sélectionner la suggestion précédente
+
+
+ Select Next Suggestion
+ Sélectionner la suggestion suivante
+
+
+ Apply (%1)
+ Appliquer (%1)
+
+
+ Apply Word (%1)
+ Appliquer le mot (%1)
+
+
+ Apply Line
+ Appliquer la ligne
+
QtC::Todo
@@ -56734,6 +57440,10 @@ Les données de la trace sont perdues.
Enter project name
Saisir le nom du projet
+
+ Add to project:
+ Ajouter au projet :
+
Name:
Nom :
@@ -56742,6 +57452,10 @@ Les données de la trace sont perdues.
Create in:
Créer dans :
+
+ Chosen project wizard does not support the build system.
+ L'assistant de création de projet sélectionné ne prend pas en charge le système de compilation.
+
Directory "%1" will be created.
Le répertoire « %1 » sera créé.
@@ -56955,6 +57669,10 @@ Les données de la trace sont perdues.
Path "%1" exists but is not a writable directory.
Le chemin « %1 » existe mais n'est pas un répertoire inscriptible.
+
+ removeFile is not implemented for "%1".
+ removeFile n'est pas implémenté pour « %1 ».
+
Cannot copy from "%1", it is not a directory.
Impossible de copier depuis « %1 », ce n'est pas un répertoire.
@@ -56963,6 +57681,10 @@ Les données de la trace sont perdues.
Cannot copy "%1" to "%2": %3
Impossible de copier « %1 » vers « %2 » : %3
+
+ renameFile is not implemented for "%1".
+ renameFile n'est pas implémenté pour « %1 ».
+
fileContents is not implemented for "%1".
fileContents n'est pas implémenté pour « %1 ».
@@ -56979,6 +57701,14 @@ Les données de la trace sont perdues.
watch is not implemented.
L'observation n'est pas implémentée.
+
+ 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.
+
Refusing to remove the standard directory "%1".
Refus de suppression du répertoire standard « %1 ».
@@ -56999,6 +57729,10 @@ Les données de la trace sont perdues.
Failed to remove file "%1".
Échec de la suppression du fichier « %1 ».
+
+ Failed to rename file "%1" to "%2": %3
+ Impossible de renommer le fichier « %1 » en « %2 » : %3
+
Could not write to file "%1" (only %2 of %n byte(s) written).
@@ -57094,6 +57828,10 @@ Les données de la trace sont perdues.
Could not copy file "%1" to "%2".
Impossible de copier le fichier « %1 » vers « %2 ».
+
+ Failed to set up scratch buffer in "%1".
+ Impossible d'initialiser un brouillon dans « %1 ».
+
Failed to create directory "%1".
Échec de la création du répertoire « %1 ».
@@ -57242,7 +57980,7 @@ dans « %2 ».
Show %1 Column
-
+ Afficher la colonne « %1 »
No clangd executable specified.
@@ -57272,7 +58010,7 @@ dans « %2 ».
Error while trying to copy file: %1
-
+ Erreur lors de la copie du fichier : %1
Could not copy file: %1
@@ -57282,6 +58020,10 @@ dans « %2 ».
Could not set permissions on "%1"
Impossible de définir les autorisations sur « %1 »
+
+ Failed to move %1 to %2. Removing the source file failed: %3
+ Échec lors du déplacement de %1 vers %2. La suppression du fichier source a échoué : %3
+
No "localSource" device hook set.
Aucun crochet de périphérique « localSource » défini.
@@ -57391,6 +58133,10 @@ dans « %2 ».
Infinite recursion error
Erreur de récursivité infinie
+
+ Failed to expand macros in process arguments: %1
+ Impossible de développer les macros dans les arguments du processus : %1
+
%1: Full path including file name.
%1 : chemin complet comprenant le nom du fichier.
@@ -57441,7 +58187,7 @@ Pour définir ou changer une variable, utilisez VARIABLE=VALEUR.
Pour désactiver une variable, préfixez la ligne avec le caractère « # ».
Pour suffixer une variable, utilisez VARIABLE+=VALEUR.
Pour préfixer une variable, utilisez VARIABLE=+VALEUR.
-Les variables existantes peuvent être référencées dans une VALEUR avec ${OTHER}.
+Les variables existantes peuvent être référencées dans une VALEUR avec ${AUTRE}.
Pour effacer une variable, placez son nom sur une ligne avec rien d'autre sur celle-ci.
Les lignes débutant avec « ### » seront traitées comme commentaires.
@@ -57754,7 +58500,7 @@ Les lignes débutant avec « ### » seront traitées comme commentaire
Backtrace frame count:
- Backtracer le nombre de trames :
+ Nombre de trames à remonter :
Suppression files:
@@ -57906,7 +58652,7 @@ Avec la simulation du cache, d’autres compteurs d’évènements sont activés
Check for leaks on finish:
- Vérification des fuites lorsque c’est fini :
+ Vérification des fuites à la fin :
Summary Only
@@ -59205,7 +59951,7 @@ Vérifiez les paramètres pour vous assurer que Valgrind est installé et dispon
Wrap submit message at:
- Limiter la largeur du message à :
+ Limiter la taille du message à :
characters
@@ -59287,6 +60033,10 @@ si un dépôt requiert une authentification SSH (voir la documentation sur SSH e
Select a&ll
Tout &sélectionner
+
+ Cannot commit: %1
+ Impossible de commit : %1
+
%1 %2/%n File(s)
@@ -59434,6 +60184,22 @@ si un dépôt requiert une authentification SSH (voir la documentation sur SSH e
Setting environment variables:
Définition des variables d’environnement :
+
+ The chosen directory is an emsdk location.
+ Le répertoire choisi contient un SDK Emscripten (emsdk).
+
+
+ An SDK is installed.
+ Un SDK est installé.
+
+
+ An SDK is activated.
+ Un SDK est activé.
+
+
+ The activated SDK is usable by %1.
+ Le SDK activé peut être utilisé par %1.
+
The activated version %1 is not supported by %2. Activate version %3 or higher.
La version activée %1 n’est pas prise en charge par %2. Activez la version %3 ou une version supérieure.
@@ -59550,7 +60316,7 @@ si un dépôt requiert une authentification SSH (voir la documentation sur SSH e
Mode Selector
-
+ Sélecteur de mode
Select different modes depending on the task at hand.
@@ -59558,7 +60324,7 @@ si un dépôt requiert une authentification SSH (voir la documentation sur SSH e
<p style="margin-top: 30px"><table><tr><td style="padding-right: 20px">Welcome:</td><td>Open examples, tutorials, and recent sessions and projects.</td></tr><tr><td>Edit:</td><td>Work with code and navigate your project.</td></tr><tr><td>Design:</td><td>Visually edit Widget-based user interfaces, state charts and UML models.</td></tr><tr><td>Debug:</td><td>Analyze your application with a debugger or other analyzers.</td></tr><tr><td>Projects:</td><td>Manage project settings.</td></tr><tr><td>Help:</td><td>Browse the help database.</td></tr></table></p>
- <p style="margin-top: 30px"><table><tr><td style="padding-right: 20px">Accueil :</td><td>Ouvrez des exemples, des tutoriels et des sessions et projets récents.</td></tr><td>Modifier :</td><td>Travaillez avec le code et naviguez dans votre projet.</td></tr><tr><td>Design:</td><td>Modifiez visuellement des interfaces utilisateur basées sur des widgets, des diagrammes d’état et des modèles UML. </td></tr><ttr><td>Débogage :</td><td>Analysez votre application avec un débogueur ou d’autres analyseurs.</td></tr><tr><td>Projets :</td><td>Gérez les paramètres du projet.</td></tr><tr><td>Aide :</td><td>Parcourez la base de données d’aide.</td></tr></table></p>
+ <p style="margin-top: 30px"><table><tr><td style="padding-right: 20px">Accueil :</td><td>Ouvrez des exemples, des tutoriels et des sessions et projets récents.</td></tr><tr><td>Modifier :</td><td>Travaillez avec le code et naviguez dans votre projet.</td></tr><tr><td>Design :</td><td>Modifiez visuellement des interfaces utilisateur basées sur des widgets, des diagrammes d'état et des modèles UML. </td></tr><tr><td>Débogage :</td><td>Analysez votre application avec un débogueur ou d'autres analyseurs.</td></tr><tr><td>Projets :</td><td>Gérez les paramètres du projet.</td></tr><tr><td>Aide :</td><td>Parcourez la base de données d'aide.</td></tr></table></p>
Kit Selector
@@ -59590,7 +60356,7 @@ si un dépôt requiert une authentification SSH (voir la documentation sur SSH e
Build the active project.
- Compiler le projet actif.
+ Compile le projet actif.
Locator
@@ -59610,7 +60376,7 @@ si un dépôt requiert une authentification SSH (voir la documentation sur SSH e
Find compile and application output here, as well as a list of configuration and build issues, and the panel for global searches.
- Vous y trouverez les résultats de la compilation et de l’application, ainsi qu’une liste des problèmes de configuration et de compilation, et le panneau des recherches générales.
+ Vous y trouverez les résultats de la compilation et de l'application, ainsi qu’une liste des problèmes de configuration et de compilation, ainsi que le panneau des recherches globales.
Progress Indicator
@@ -59634,8 +60400,7 @@ si un dépôt requiert une authentification SSH (voir la documentation sur SSH e
You have now completed the UI tour. To learn more about the highlighted controls, see <a style="color: #41CD52" href="qthelp://org.qt-project.qtcreator/doc/creator-quick-tour.html">User Interface</a>.
- Vous avez maintenant terminé la visite guidée de l’interface utilisateur
-Pour en savoir plus sur les contrôles mis en évidence, voir l’<a style="color: #41CD52" href="qthelp://org.qt-project.qtcreator/doc/creator-quick-tour.html">interface utilisateur</a>.
+ Vous avez maintenant terminé la visite guidée de l'interface utilisateur. Pour en savoir plus sur les contrôles mis en évidence, consultez la page d'aide concernant l'<a style="color: #41CD52" href="qthelp://org.qt-project.qtcreator/doc/creator-quick-tour.html">interface utilisateur</a>.
UI Introduction %1/%2 >
@@ -60542,8 +61307,8 @@ définit dans la taille de pas.
Définit la direction du flux des éléments dans l'<b>agencement en ligne</b>.
- Uniform cell size
- Taille de cellules uniforme
+ Uniform cell sizes
+ Tailles de cellule uniformes
Toggles all cells to have a uniform size.
@@ -60869,7 +61634,7 @@ Elle est utilisée pour calculer la taille totale implicite.
Current value of the Slider. The default value is 0.0.
-
+ Valeur actuelle du slider. La valeur par défaut est 0.0.
Maximum value
diff --git a/share/share.qbs b/share/share.qbs
index cc1a449ab6f..64940074448 100644
--- a/share/share.qbs
+++ b/share/share.qbs
@@ -18,6 +18,7 @@ Product {
"designer/**/*",
"glsl/**/*",
"jsonschemas/**/*",
+ "lua-lupdate/**/*",
"lua-plugins/**/*",
"modeleditor/**/*",
"qml/**/*",
@@ -59,8 +60,6 @@ Product {
prefix: project.ide_source_tree + "/src/share/qtcreator/externaltools/"
files: {
var list = [
- "lrelease.xml",
- "lupdate.xml",
"qml.xml",
]
if (qbs.targetOS.contains("windows"))
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index edc23e5ed03..f537d8b9c4f 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -91,7 +91,6 @@ file(COPY
${PROJECT_SOURCE_DIR}/cmake/Config.cmake.in
${PROJECT_SOURCE_DIR}/cmake/QtcSeparateDebugInfo.cmake
${PROJECT_SOURCE_DIR}/cmake/QtcSeparateDebugInfo.Info.plist.in
- ${PROJECT_SOURCE_DIR}/cmake/Utils.cmake
DESTINATION ${CMAKE_BINARY_DIR}/cmake
)
@@ -106,7 +105,6 @@ install(
${PROJECT_SOURCE_DIR}/cmake/Config.cmake.in
${PROJECT_SOURCE_DIR}/cmake/QtcSeparateDebugInfo.cmake
${PROJECT_SOURCE_DIR}/cmake/QtcSeparateDebugInfo.Info.plist.in
- ${PROJECT_SOURCE_DIR}/cmake/Utils.cmake
${CMAKE_BINARY_DIR}/cmake/QtCreatorConfig.cmake
DESTINATION ${IDE_CMAKE_INSTALL_PATH}/QtCreator
COMPONENT Devel EXCLUDE_FROM_ALL
diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt
index 293a7546fa8..4323678b4e1 100644
--- a/src/app/CMakeLists.txt
+++ b/src/app/CMakeLists.txt
@@ -78,7 +78,7 @@ if (WIN32)
set(RC_APPLICATION_NAME "${IDE_DISPLAY_NAME}")
set(RC_VERSION "${IDE_VERSION}.0")
set(RC_VERSION_STRING "${IDE_VERSION_DISPLAY}")
- set(RC_COPYRIGHT "2008-${IDE_COPYRIGHT_YEAR} The Qt Company Ltd")
+ set(RC_COPYRIGHT "${IDE_COPYRIGHT}")
string(REPLACE " " "\\x20" RC_APPLICATION_NAME "${RC_APPLICATION_NAME}")
string(REPLACE " " "\\x20" RC_COPYRIGHT "${RC_COPYRIGHT}")
diff --git a/src/app/app-Info.plist b/src/app/app-Info.plist
index 2ff4a3d264a..b843bf1200f 100644
--- a/src/app/app-Info.plist
+++ b/src/app/app-Info.plist
@@ -237,7 +237,7 @@
NSHumanReadableCopyright
- (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd
+ ${IDE_COPYRIGHT}
CFBundleIconFile
qtcreator
CFBundlePackageType
diff --git a/src/app/app.qbs b/src/app/app.qbs
index 5c293781c29..139656225ce 100644
--- a/src/app/app.qbs
+++ b/src/app/app.qbs
@@ -30,7 +30,7 @@ QtcProduct {
// Some of these are in here only to override the entries added to app-Info.plist with other
// build systems in mind.
bundle.infoPlist: ({
- "NSHumanReadableCopyright": qtc.qtcreator_copyright_string,
+ "NSHumanReadableCopyright": qtc.ide_copyright_string,
"CFBundleExecutable": qtc.ide_app_target,
"CFBundleIdentifier": qtc.ide_bundle_identifier,
"CFBundleVersion": version
@@ -69,8 +69,7 @@ QtcProduct {
// Also, we need to replace space with \x20 to be able to work with both rc and windres
cpp.defines: outer.concat(["RC_VERSION=" + qtc.qtcreator_version.replace(/\./g, ",") + ",0",
"RC_VERSION_STRING=" + qtc.qtcreator_display_version,
- "RC_COPYRIGHT=2008-" + qtc.qtcreator_copyright_year
- + " The Qt Company Ltd".replace(/ /g, "\\x20"),
+ "RC_COPYRIGHT=" + qtc.ide_copyright_string.replace(/ /g, "\\x20"),
"RC_ICON_PATH=."])
files: "qtcreator.rc"
}
diff --git a/src/app/app_version.h.cmakein b/src/app/app_version.h.cmakein
index 6c1fb9bb297..1040f5fbf90 100644
--- a/src/app/app_version.h.cmakein
+++ b/src/app/app_version.h.cmakein
@@ -13,8 +13,8 @@ namespace Core {
namespace Constants {
const char IDE_VERSION_LONG[] = "${PROJECT_VERSION}";
-const char IDE_AUTHOR[] = "The Qt Company Ltd";
-const char IDE_YEAR[] = "${IDE_COPYRIGHT_YEAR}";
+const char IDE_AUTHOR[] = "${IDE_AUTHOR}";
+const char IDE_COPYRIGHT[] = "${IDE_COPYRIGHT}";
const char IDE_DISPLAY_NAME[] = "${IDE_DISPLAY_NAME}";
const char IDE_ID[] = "${IDE_ID}";
diff --git a/src/app/app_version_header.qbs b/src/app/app_version_header.qbs
index dace34d4ede..8621128002d 100644
--- a/src/app/app_version_header.qbs
+++ b/src/app/app_version_header.qbs
@@ -42,10 +42,12 @@ Product {
product.moduleProperty("qtc", "ide_version_minor"));
content = content.replace("${PROJECT_VERSION_PATCH}",
product.moduleProperty("qtc", "ide_version_release"));
- content = content.replace("${IDE_COPYRIGHT_YEAR}",
- product.moduleProperty("qtc", "qtcreator_copyright_year"));
content = content.replace("${IDE_DISPLAY_NAME}",
product.moduleProperty("qtc", "ide_display_name"));
+ content = content.replace("${IDE_AUTHOR}",
+ product.moduleProperty("qtc", "ide_author"));
+ content = content.replace("${IDE_COPYRIGHT}",
+ product.moduleProperty("qtc", "ide_copyright_string"));
content = content.replace("${IDE_ID}",
product.moduleProperty("qtc", "ide_id"));
content = content.replace("${IDE_CASED_ID}",
diff --git a/src/app/main.cpp b/src/app/main.cpp
index 5e5e3e1602a..73b6a003514 100644
--- a/src/app/main.cpp
+++ b/src/app/main.cpp
@@ -54,10 +54,11 @@
#endif
using namespace ExtensionSystem;
+using namespace Utils;
enum { OptionIndent = 4, DescriptionIndent = 34 };
-const char corePluginNameC[] = "Core";
+const char corePluginIdC[] = "core";
const char fixedOptionsC[]
= " [OPTION]... [FILE]...\n"
"Options:\n"
@@ -83,6 +84,7 @@ const char CLIENT_OPTION[] = "-client";
const char SETTINGS_OPTION[] = "-settingspath";
const char INSTALL_SETTINGS_OPTION[] = "-installsettingspath";
const char TEST_OPTION[] = "-test";
+const char STYLE_OPTION[] = "-style";
const char TEMPORARY_CLEAN_SETTINGS1[] = "-temporarycleansettings";
const char TEMPORARY_CLEAN_SETTINGS2[] = "-tcs";
const char PID_OPTION[] = "-pid";
@@ -107,7 +109,7 @@ static inline QString toHtml(const QString &t)
static void displayHelpText(const QString &t)
{
- if (Utils::HostOsInfo::isWindowsHost() && qApp)
+ if (HostOsInfo::isWindowsHost() && qApp)
QMessageBox::information(nullptr, QLatin1String(Core::Constants::IDE_DISPLAY_NAME), toHtml(t));
else
printf("%s", qPrintable(t));
@@ -115,7 +117,7 @@ static void displayHelpText(const QString &t)
static void displayError(const QString &t)
{
- if (Utils::HostOsInfo::isWindowsHost() && qApp)
+ if (HostOsInfo::isWindowsHost() && qApp)
QMessageBox::critical(nullptr, QLatin1String(Core::Constants::IDE_DISPLAY_NAME), t);
else
qCritical("%s", qPrintable(t));
@@ -175,37 +177,30 @@ static inline int askMsgSendFailed()
QMessageBox::Retry);
}
-static inline QStringList getPluginPaths()
+static inline FilePaths getPluginPaths()
{
- QStringList rc;
- rc << (QDir::cleanPath(QApplication::applicationDirPath()
- + '/' + RELATIVE_PLUGIN_PATH))
- << (QDir::cleanPath(QApplication::applicationDirPath()
- + '/' + RELATIVE_DATA_PATH + "/lua-plugins"));
+ FilePaths rc;
+ rc << appInfo().plugins << appInfo().luaPlugins << appInfo().userLuaPlugins;
+
+ const auto version = [](int micro) {
+ return QString("%1.%2.%3").arg(IDE_VERSION_MAJOR).arg(IDE_VERSION_MINOR).arg(micro);
+ };
+
+ const int minPatchVersion = qMin(
+ IDE_VERSION_RELEASE,
+ QVersionNumber::fromString(Core::Constants::IDE_VERSION_COMPAT).microVersion());
+
// Local plugin path: /plugins/
// where is e.g.
// "%LOCALAPPDATA%\QtProject\qtcreator" on Windows Vista and later
// "$XDG_DATA_HOME/data/QtProject/qtcreator" or "~/.local/share/data/QtProject/qtcreator" on Linux
// "~/Library/Application Support/QtProject/Qt Creator" on Mac
- QString pluginPath = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation);
- if (Utils::HostOsInfo::isAnyUnixHost() && !Utils::HostOsInfo::isMacHost())
- pluginPath += QLatin1String("/data");
- pluginPath += QLatin1Char('/')
- + QLatin1String(Core::Constants::IDE_SETTINGSVARIANT_STR)
- + QLatin1Char('/');
- pluginPath += QLatin1String(Utils::HostOsInfo::isMacHost() ?
- Core::Constants::IDE_DISPLAY_NAME :
- Core::Constants::IDE_ID);
- pluginPath += QLatin1String("/plugins/");
+ const FilePath userPluginPath = appInfo().userPluginsRoot;
+
// Qt Creator X.Y.Z can load plugins from X.Y.(Z-1) etc, so add current and previous
// patch versions
- const QString minorVersion = QString::number(IDE_VERSION_MAJOR) + '.'
- + QString::number(IDE_VERSION_MINOR) + '.';
- const int minPatchVersion
- = qMin(IDE_VERSION_RELEASE,
- QVersionNumber::fromString(Core::Constants::IDE_VERSION_COMPAT).microVersion());
for (int patchVersion = IDE_VERSION_RELEASE; patchVersion >= minPatchVersion; --patchVersion)
- rc.push_back(pluginPath + minorVersion + QString::number(patchVersion));
+ rc << userPluginPath / version(patchVersion);
return rc;
}
@@ -269,25 +264,25 @@ static void setupInstallSettings(QString &installSettingspath, bool redirect = t
} while (containsInstallSettingsKey && count < 3);
}
-static Utils::QtcSettings *createUserSettings()
+static QtcSettings *createUserSettings()
{
- return new Utils::QtcSettings(QSettings::IniFormat,
- QSettings::UserScope,
- QLatin1String(Core::Constants::IDE_SETTINGSVARIANT_STR),
- QLatin1String(Core::Constants::IDE_CASED_ID));
+ return new QtcSettings(QSettings::IniFormat,
+ QSettings::UserScope,
+ QLatin1String(Core::Constants::IDE_SETTINGSVARIANT_STR),
+ QLatin1String(Core::Constants::IDE_CASED_ID));
}
static void setHighDpiEnvironmentVariable()
{
- if (Utils::StyleHelper::defaultHighDpiScaleFactorRoundingPolicy()
+ if (StyleHelper::defaultHighDpiScaleFactorRoundingPolicy()
== Qt::HighDpiScaleFactorRoundingPolicy::Unset
- || qEnvironmentVariableIsSet(Utils::StyleHelper::C_QT_SCALE_FACTOR_ROUNDING_POLICY))
+ || qEnvironmentVariableIsSet(StyleHelper::C_QT_SCALE_FACTOR_ROUNDING_POLICY))
return;
- std::unique_ptr settings(createUserSettings());
+ std::unique_ptr settings(createUserSettings());
using Policy = Qt::HighDpiScaleFactorRoundingPolicy;
- const Policy defaultPolicy = Utils::StyleHelper::defaultHighDpiScaleFactorRoundingPolicy();
+ const Policy defaultPolicy = StyleHelper::defaultHighDpiScaleFactorRoundingPolicy();
const Policy userPolicy = settings->value("Core/HighDpiScaleFactorRoundingPolicy",
int(defaultPolicy)).value();
QGuiApplication::setHighDpiScaleFactorRoundingPolicy(userPolicy);
@@ -323,6 +318,7 @@ struct Options
std::optional userLibraryPath;
bool hasTestOption = false;
bool wantsCleanSettings = false;
+ bool hasStyleOption = false;
};
Options parseCommandLine(int argc, char *argv[])
@@ -359,12 +355,15 @@ Options parseCommandLine(int argc, char *argv[])
options.wantsCleanSettings = true;
options.preAppArguments << arg;
} else { // arguments that are still passed on to the application
+ if (arg == STYLE_OPTION)
+ options.hasStyleOption = true;
if (arg == TEST_OPTION)
options.hasTestOption = true;
options.appArguments.push_back(*it);
}
++it;
}
+
return options;
}
@@ -410,33 +409,23 @@ QStringList lastSessionArgument()
return hasProjectExplorer ? QStringList({"-lastsession"}) : QStringList();
}
-// should be in sync with src/plugins/coreplugin/icore.cpp -> FilePath ICore::crashReportsPath()
-// and src\tools\qml2puppet\qml2puppet\qmlpuppet.cpp -> QString crashReportsPath()
-QString crashReportsPath()
-{
- std::unique_ptr settings(createUserSettings());
- if (Utils::HostOsInfo::isMacHost())
- return QFileInfo(settings->fileName()).path() + "/crashpad_reports";
- else
- return QCoreApplication::applicationDirPath()
- + '/' + RELATIVE_LIBEXEC_PATH + "crashpad_reports";
-}
-
#ifdef ENABLE_CRASHPAD
-bool startCrashpad(const QString &libexecPath, bool crashReportingEnabled)
+void startCrashpad(const AppInfo &appInfo, bool crashReportingEnabled)
{
+ if (!crashReportingEnabled)
+ return;
+
using namespace crashpad;
// Cache directory that will store crashpad information and minidumps
- QString databasePath = QDir::cleanPath(crashReportsPath());
- QString handlerPath = QDir::cleanPath(libexecPath + "/crashpad_handler");
+ const QString databasePath = appInfo.crashReports.path();
+ const QString handlerPath = (appInfo.libexec / "crashpad_handler").path();
#ifdef Q_OS_WIN
- handlerPath += ".exe";
base::FilePath database(databasePath.toStdWString());
- base::FilePath handler(handlerPath.toStdWString());
+ base::FilePath handler(HostOsInfo::withExecutableSuffix(handlerPath).toStdWString());
#elif defined(Q_OS_MACOS) || defined(Q_OS_LINUX)
base::FilePath database(databasePath.toStdString());
- base::FilePath handler(handlerPath.toStdString());
+ base::FilePath handler(HostOsInfo::withExecutableSuffix(handlerPath).toStdString());
#endif
std::unique_ptr db = CrashReportDatabase::Initialize(database);
@@ -454,12 +443,18 @@ bool startCrashpad(const QString &libexecPath, bool crashReportingEnabled)
annotations["sha1"] = Core::Constants::IDE_REVISION_STR;
#endif
+ if (HostOsInfo::isWindowsHost()) {
+ // reduces the size of crash reports, which can be large on Windows
+ CrashpadInfo::GetCrashpadInfo()
+ ->set_gather_indirectly_referenced_memory(crashpad::TriState::kEnabled, 0);
+ }
+
// Optional arguments to pass to the handler
std::vector arguments;
arguments.push_back("--no-rate-limit");
CrashpadClient *client = new CrashpadClient();
- bool success = client->StartHandler(
+ client->StartHandler(
handler,
database,
database,
@@ -467,10 +462,7 @@ bool startCrashpad(const QString &libexecPath, bool crashReportingEnabled)
annotations,
arguments,
/* restartable */ true,
- /* asynchronous_start */ true
- );
-
- return success;
+ /* asynchronous_start */ true);
}
#endif
@@ -491,7 +483,7 @@ private:
if (type == QtFatalMsg) {
// Show some kind of GUI with collected messages before exiting.
// For Windows, Qt already uses a dialog.
- if (Utils::HostOsInfo::isLinuxHost()) {
+ if (HostOsInfo::isLinuxHost()) {
#if (QT_VERSION >= QT_VERSION_CHECK(6, 5, 0) && QT_VERSION < QT_VERSION_CHECK(6, 5, 3)) \
|| (QT_VERSION >= QT_VERSION_CHECK(6, 6, 0) && QT_VERSION < QT_VERSION_CHECK(6, 6, 1))
// Information about potentially missing libxcb-cursor0 is printed by Qt since Qt 6.5.3 and Qt 6.6.1
@@ -501,7 +493,7 @@ private:
#endif
if (QFile::exists("/usr/bin/xmessage"))
QProcess::startDetached("/usr/bin/xmessage", {instance->messages.join("\n")});
- } else if (Utils::HostOsInfo::isMacHost()) {
+ } else if (HostOsInfo::isMacHost()) {
QProcess::startDetached("/usr/bin/osascript",
{"-e",
"display dialog \""
@@ -521,12 +513,44 @@ private:
ShowInGuiHandler *ShowInGuiHandler::instance = nullptr;
+FilePath userPluginsRoot()
+{
+ FilePath rootPath = FilePath::fromUserInput(
+ QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation));
+
+ if (HostOsInfo::isAnyUnixHost() && !HostOsInfo::isMacHost())
+ rootPath /= "data";
+
+ rootPath /= Core::Constants::IDE_SETTINGSVARIANT_STR;
+
+ rootPath /= QLatin1StringView(
+ HostOsInfo::isMacHost() ? Core::Constants::IDE_DISPLAY_NAME : Core::Constants::IDE_ID);
+ rootPath /= "plugins";
+
+ rootPath /= Core::Constants::IDE_VERSION_LONG;
+
+ return rootPath;
+}
+
+FilePath userResourcePath(const QString &settingsPath, const QString &appId)
+{
+ const FilePath configDir = FilePath::fromUserInput(settingsPath).parentDir();
+ const FilePath urp = configDir / appId;
+
+ if (!urp.exists()) {
+ if (!urp.createDir())
+ qWarning() << "could not create" << urp;
+ }
+
+ return urp;
+}
+
int main(int argc, char **argv)
{
Restarter restarter(argc, argv);
- Utils::Environment::systemEnvironment(); // cache system environment before we do any changes
+ Environment::systemEnvironment(); // cache system environment before we do any changes
- Utils::FSEngine fileSystemEngine;
+ FSEngine fileSystemEngine;
// Manually determine various command line options
// We can't use the regular way of the plugin manager,
@@ -534,24 +558,42 @@ int main(int argc, char **argv)
Options options = parseCommandLine(argc, argv);
applicationDirPath(argv[0]);
- const bool hasStyleOption = Utils::findOrDefault(options.appArguments, [](char *arg) {
- return strcmp(arg, "-style") == 0;
- });
-
- if (qEnvironmentVariableIsSet("QTC_DO_NOT_PROPAGATE_LD_PRELOAD")) {
- Utils::Environment::modifySystemEnvironment(
- {{"LD_PRELOAD", "", Utils::EnvironmentItem::Unset}});
+ // Remove entries from environment variables that were set up by Qt Creator to run
+ // the application (in this case, us).
+ // TODO: We should be able to merge at least some of the stuff below with similar intent
+ // into a more generalized version of this.
+ EnvironmentItems specialItems;
+ EnvironmentItems diff;
+ Environment::systemEnvironment().forEachEntry(
+ [&specialItems](const QString &name, const QString &value, bool enabled) {
+ if (enabled && name.startsWith("_QTC_"))
+ specialItems.emplaceBack(name, value, EnvironmentItem::SetEnabled);
+ });
+ for (const EnvironmentItem &item : std::as_const(specialItems)) {
+ const QString varName = item.name.mid(5);
+ const FilePaths addedPaths
+ = Environment::pathListFromValue(item.value, HostOsInfo::hostOs());
+ FilePaths allPaths = Environment::systemEnvironment().pathListValue(varName);
+ Utils::eraseOne(allPaths, [&addedPaths](const FilePath &p) {
+ return addedPaths.contains(p);
+ });
+ diff.emplaceBack(
+ varName,
+ Environment::valueFromPathList(allPaths, HostOsInfo::hostOs()),
+ EnvironmentItem::SetEnabled);
+ diff.emplaceBack(item.name, "", EnvironmentItem::Unset);
}
+ Environment::modifySystemEnvironment(diff);
+
+ if (qEnvironmentVariableIsSet("QTC_DO_NOT_PROPAGATE_LD_PRELOAD"))
+ Environment::modifySystemEnvironment({{"LD_PRELOAD", "", EnvironmentItem::Unset}});
auto restoreEnvVarFromSquish = [](const QByteArray &squishVar, const QString &var) {
if (qEnvironmentVariableIsSet(squishVar)) {
- Utils::Environment::modifySystemEnvironment(
- {{var, "", Utils::EnvironmentItem::Unset}});
+ Environment::modifySystemEnvironment({{var, "", EnvironmentItem::Unset}});
const QString content = qEnvironmentVariable(squishVar);
- if (!content.isEmpty()) {
- Utils::Environment::modifySystemEnvironment(
- {{var, content, Utils::EnvironmentItem::Prepend}});
- }
+ if (!content.isEmpty())
+ Environment::modifySystemEnvironment({{var, content, EnvironmentItem::Prepend}});
}
};
@@ -560,15 +602,15 @@ int main(int argc, char **argv)
if (options.userLibraryPath) {
if ((*options.userLibraryPath).isEmpty()) {
- Utils::Environment::modifySystemEnvironment(
- {{"LD_LIBRARY_PATH", "", Utils::EnvironmentItem::Unset}});
+ Environment::modifySystemEnvironment(
+ {{"LD_LIBRARY_PATH", "", EnvironmentItem::Unset}});
} else {
- Utils::Environment::modifySystemEnvironment(
- {{"LD_LIBRARY_PATH", *options.userLibraryPath, Utils::EnvironmentItem::SetEnabled}});
+ Environment::modifySystemEnvironment(
+ {{"LD_LIBRARY_PATH", *options.userLibraryPath, EnvironmentItem::SetEnabled}});
}
}
- if (Utils::HostOsInfo::isMacHost()) {
+ if (HostOsInfo::isMacHost()) {
QSurfaceFormat surfaceFormat;
surfaceFormat.setStencilBufferSize(8);
surfaceFormat.setDepthBufferSize(24);
@@ -577,15 +619,13 @@ int main(int argc, char **argv)
QSurfaceFormat::setDefaultFormat(surfaceFormat);
}
- qputenv("QSG_RHI_BACKEND", "opengl");
-
if (qEnvironmentVariableIsSet("QTCREATOR_DISABLE_NATIVE_MENUBAR")
|| qgetenv("XDG_CURRENT_DESKTOP").startsWith("Unity")) {
QApplication::setAttribute(Qt::AA_DontUseNativeMenuBar);
}
#if defined(QTC_FORCE_XCB)
- if (Utils::HostOsInfo::isLinuxHost() && !qEnvironmentVariableIsSet("QT_QPA_PLATFORM")) {
+ if (HostOsInfo::isLinuxHost() && !qEnvironmentVariableIsSet("QT_QPA_PLATFORM")) {
// Enforce XCB on Linux/Gnome, if the user didn't override via QT_QPA_PLATFORM
// This was previously done in Qt, but removed in Qt 6.3. We found that bad things can still happen,
// like the Wayland session simply crashing when starting Qt Creator.
@@ -604,7 +644,7 @@ int main(int argc, char **argv)
}
#endif
- Utils::TemporaryDirectory::setMasterTemporaryDirectory(QDir::tempPath() + "/" + Core::Constants::IDE_CASED_ID + "-XXXXXX");
+ TemporaryDirectory::setMasterTemporaryDirectory(QDir::tempPath() + "/" + Core::Constants::IDE_CASED_ID + "-XXXXXX");
#ifdef Q_OS_MACOS
// increase the number of file that can be opened in Qt Creator.
@@ -615,9 +655,9 @@ int main(int argc, char **argv)
setrlimit(RLIMIT_NOFILE, &rl);
#endif
- QScopedPointer temporaryCleanSettingsDir;
+ QScopedPointer temporaryCleanSettingsDir;
if (options.settingsPath.isEmpty() && (options.hasTestOption || options.wantsCleanSettings)) {
- temporaryCleanSettingsDir.reset(new Utils::TemporaryDirectory("qtc-test-settings"));
+ temporaryCleanSettingsDir.reset(new TemporaryDirectory("qtc-test-settings"));
if (!temporaryCleanSettingsDir->isValid())
return 1;
options.settingsPath = temporaryCleanSettingsDir->path().path();
@@ -651,7 +691,7 @@ int main(int argc, char **argv)
QCoreApplication::setOrganizationName(QLatin1String(Core::Constants::IDE_SETTINGSVARIANT_STR));
QGuiApplication::setApplicationDisplayName(Core::Constants::IDE_DISPLAY_NAME);
- const QScopeGuard cleanup([] { Utils::Singleton::deleteAll(); });
+ const QScopeGuard cleanup([] { Singleton::deleteAll(); });
const QStringList pluginArguments = app.arguments();
@@ -661,12 +701,12 @@ int main(int argc, char **argv)
const QStringList installPluginPaths = getInstallPluginPaths();
// Re-setup install settings for real
setupInstallSettings(options.installSettingsPath);
- Utils::QtcSettings *settings = createUserSettings();
- Utils::QtcSettings *installSettings
- = new Utils::QtcSettings(QSettings::IniFormat,
- QSettings::SystemScope,
- QLatin1String(Core::Constants::IDE_SETTINGSVARIANT_STR),
- QLatin1String(Core::Constants::IDE_CASED_ID));
+ QtcSettings *settings = createUserSettings();
+ QtcSettings *installSettings
+ = new QtcSettings(QSettings::IniFormat,
+ QSettings::SystemScope,
+ QLatin1String(Core::Constants::IDE_SETTINGSVARIANT_STR),
+ QLatin1String(Core::Constants::IDE_CASED_ID));
// warn if -installsettings points to a place where no install settings are located
if (!options.installSettingsPath.isEmpty() && !QFileInfo::exists(installSettings->fileName())) {
displayError(QLatin1String("The install settings \"%1\" do not exist. The %2 option must "
@@ -676,11 +716,11 @@ int main(int argc, char **argv)
INSTALL_SETTINGS_OPTION,
Core::Constants::IDE_SETTINGSVARIANT_STR));
}
- Utils::TerminalCommand::setSettings(settings);
+ TerminalCommand::setSettings(settings);
setPixmapCacheLimit();
loadFonts();
- if (Utils::HostOsInfo::isWindowsHost() && !hasStyleOption) {
+ if (Utils::HostOsInfo::isWindowsHost() && !options.hasStyleOption) {
// The Windows 11 default style (Qt 6.7) has major issues, therefore
// set the previous default style: "windowsvista"
// FIXME: check newer Qt Versions
@@ -696,17 +736,35 @@ int main(int argc, char **argv)
const int threadCount = QThreadPool::globalInstance()->maxThreadCount();
QThreadPool::globalInstance()->setMaxThreadCount(qMax(4, 2 * threadCount));
- const QString libexecPath = QCoreApplication::applicationDirPath()
- + '/' + RELATIVE_LIBEXEC_PATH;
+ using namespace Core;
+ const FilePath appDirPath = FilePath::fromUserInput(QApplication::applicationDirPath());
+ AppInfo info;
+ info.author = Constants::IDE_AUTHOR;
+ info.copyright = Constants::IDE_COPYRIGHT;
+ info.displayVersion = Constants::IDE_VERSION_DISPLAY;
+ info.id = Constants::IDE_ID;
+ info.revision = Constants::IDE_REVISION_STR;
+ info.revisionUrl = Constants::IDE_REVISION_URL;
+ info.userFileExtension = Constants::IDE_PROJECT_USER_FILE_EXTENSION;
+ info.plugins = (appDirPath / RELATIVE_PLUGIN_PATH).cleanPath();
+ info.userPluginsRoot = userPluginsRoot();
+ info.resources = (appDirPath / RELATIVE_DATA_PATH).cleanPath();
+ info.userResources = userResourcePath(settings->fileName(), Constants::IDE_ID);
+ info.libexec = (appDirPath / RELATIVE_LIBEXEC_PATH).cleanPath();
+ // sync with src\tools\qml2puppet\qml2puppet\qmlpuppet.cpp -> QString crashReportsPath()
+ info.crashReports = info.userResources / "crashpad_reports";
+ info.luaPlugins = info.resources / "lua-plugins";
+ info.userLuaPlugins = info.userResources / "lua-plugins";
+ Utils::Internal::setAppInfo(info);
// Display a backtrace once a serious signal is delivered (Linux only).
- CrashHandlerSetup setupCrashHandler(Core::Constants::IDE_DISPLAY_NAME,
- CrashHandlerSetup::EnableRestart,
- libexecPath);
+ CrashHandlerSetup setupCrashHandler(
+ Core::Constants::IDE_DISPLAY_NAME, CrashHandlerSetup::EnableRestart, info.libexec.path());
#ifdef ENABLE_CRASHPAD
+ // depends on AppInfo and QApplication being created
bool crashReportingEnabled = settings->value("CrashReportingEnabled", false).toBool();
- startCrashpad(libexecPath, crashReportingEnabled);
+ startCrashpad(info, crashReportingEnabled);
#endif
PluginManager pluginManager;
@@ -715,18 +773,7 @@ int main(int argc, char **argv)
PluginManager::setSettings(settings);
PluginManager::startProfiling();
- Utils::BaseAspect::setQtcSettings(settings);
-
- using namespace Core;
- Utils::AppInfo info;
- info.author = Constants::IDE_AUTHOR;
- info.year = Constants::IDE_YEAR;
- info.displayVersion = Constants::IDE_VERSION_DISPLAY;
- info.id = Constants::IDE_ID;
- info.revision = Constants::IDE_REVISION_STR;
- info.revisionUrl = Constants::IDE_REVISION_URL;
- info.userFileExtension = Constants::IDE_PROJECT_USER_FILE_EXTENSION;
- Utils::Internal::setAppInfo(info);
+ BaseAspect::setQtcSettings(settings);
QTranslator translator;
QTranslator qtTranslator;
@@ -773,9 +820,10 @@ int main(int argc, char **argv)
QNetworkProxyFactory::setUseSystemConfiguration(true);
// Load
- const QStringList pluginPaths = getPluginPaths() + installPluginPaths
- + options.customPluginPaths;
- PluginManager::setPluginPaths(Utils::transform(pluginPaths, &Utils::FilePath::fromUserInput));
+ const QStringList pluginPaths = installPluginPaths + options.customPluginPaths;
+ PluginManager::setPluginPaths(
+ getPluginPaths() + Utils::transform(pluginPaths, &FilePath::fromUserInput));
+
QMap foundAppOptions;
if (pluginArguments.size() > 1) {
QMap appOptions;
@@ -808,7 +856,7 @@ int main(int argc, char **argv)
const PluginSpecs plugins = PluginManager::plugins();
PluginSpec *coreplugin = nullptr;
for (PluginSpec *spec : plugins) {
- if (spec->name() == QLatin1String(corePluginNameC)) {
+ if (spec->id() == QLatin1String(corePluginIdC)) {
coreplugin = spec;
break;
}
@@ -891,5 +939,13 @@ int main(int argc, char **argv)
// shutdown plugin manager on the exit
QObject::connect(&app, &QCoreApplication::aboutToQuit, &pluginManager, &PluginManager::shutdown);
+ if (Utils::HostOsInfo::isWindowsHost()) {
+ // Workaround for QTBUG-130696 and QTCREATORBUG-31890
+ QApplication::setEffectEnabled(Qt::UI_FadeMenu, false);
+
+ // Disable menu animation which just looks bad
+ QApplication::setEffectEnabled(Qt::UI_AnimateMenu, false);
+ }
+
return restarter.restartOrExit(app.exec());
}
diff --git a/src/libs/3rdparty/cplusplus/Control.cpp b/src/libs/3rdparty/cplusplus/Control.cpp
index 7a40cbba311..b10daa66298 100644
--- a/src/libs/3rdparty/cplusplus/Control.cpp
+++ b/src/libs/3rdparty/cplusplus/Control.cpp
@@ -503,7 +503,6 @@ public:
Table selectorNameIds;
// types
- VoidType voidType;
Table integerTypes;
Table floatTypes;
Table pointerToMemberTypes;
@@ -670,7 +669,7 @@ const SelectorNameId *Control::selectorNameId(const Name *const *names,
VoidType *Control::voidType()
-{ return &d->voidType; }
+{ return &VoidType::instance; }
IntegerType *Control::integerType(int kind)
{ return d->findOrInsertIntegerType(kind); }
diff --git a/src/libs/3rdparty/cplusplus/CoreTypes.cpp b/src/libs/3rdparty/cplusplus/CoreTypes.cpp
index a9b1d88ad81..d32b56f0b13 100644
--- a/src/libs/3rdparty/cplusplus/CoreTypes.cpp
+++ b/src/libs/3rdparty/cplusplus/CoreTypes.cpp
@@ -22,8 +22,6 @@
#include "TypeVisitor.h"
#include "Matcher.h"
-#include
-
namespace CPlusPlus {
UndefinedType UndefinedType::instance;
@@ -39,6 +37,8 @@ bool UndefinedType::match0(const Type *otherType, Matcher *matcher) const
return false;
}
+VoidType VoidType::instance;
+
void VoidType::accept0(TypeVisitor *visitor)
{ visitor->visit(this); }
diff --git a/src/libs/3rdparty/cplusplus/CoreTypes.h b/src/libs/3rdparty/cplusplus/CoreTypes.h
index 7ccd861bb9e..bcc1c588034 100644
--- a/src/libs/3rdparty/cplusplus/CoreTypes.h
+++ b/src/libs/3rdparty/cplusplus/CoreTypes.h
@@ -42,12 +42,17 @@ protected:
class CPLUSPLUS_EXPORT VoidType final : public Type
{
public:
+ static VoidType instance;
+
const VoidType *asVoidType() const override { return this; }
VoidType *asVoidType() override { return this; }
protected:
void accept0(TypeVisitor *visitor) override;
bool match0(const Type *otherType, Matcher *matcher) const override;
+
+private:
+ VoidType() = default;
};
class CPLUSPLUS_EXPORT IntegerType final : public Type
diff --git a/src/libs/3rdparty/cplusplus/Parser.cpp b/src/libs/3rdparty/cplusplus/Parser.cpp
index 473090b8818..5b3768a14a8 100644
--- a/src/libs/3rdparty/cplusplus/Parser.cpp
+++ b/src/libs/3rdparty/cplusplus/Parser.cpp
@@ -1531,14 +1531,21 @@ bool Parser::parseOperator(OperatorAST *&node) // ### FIXME
} else if (LA() == T_LBRACKET && LA(2) == T_RBRACKET) {
ast->op_token = ast->open_token = consumeToken();
ast->close_token = consumeToken();
- } else if (_languageFeatures.cxx11Enabled &&
- LA() == T_STRING_LITERAL && LA(2) == T_IDENTIFIER &&
- !tok().f.userDefinedLiteral && tok().string->size() == 0 &&
- tok(2).identifier->size() > 1 && tok(2).identifier->chars()[0] == '_') {
+ } else if (_languageFeatures.cxx11Enabled && LA() == T_STRING_LITERAL) {
// C++11 user-defined literal operator, e.g.:
// int operator"" _abc123(const char *str, size_t size) { ... }
- ast->op_token = consumeToken();
- consumeToken(); // consume literal operator identifier
+ // There are two variants: With and without a space after the quotes. The former
+ // is deprecated.
+ if (LA(2) == T_IDENTIFIER && !tok().f.userDefinedLiteral
+ && tok().string->size() == 0 &&
+ tok(2).identifier->size() > 1 && tok(2).identifier->chars()[0] == '_') {
+ ast->op_token = consumeToken();
+ consumeToken(); // consume literal operator identifier
+ } else if (tok().f.userDefinedLiteral) {
+ ast->op_token = consumeToken();
+ } else {
+ return false;
+ }
} else {
return false;
}
diff --git a/src/libs/3rdparty/libptyqt/conptyprocess.cpp b/src/libs/3rdparty/libptyqt/conptyprocess.cpp
index c957e0bdd9e..d8f0608ef16 100644
--- a/src/libs/3rdparty/libptyqt/conptyprocess.cpp
+++ b/src/libs/3rdparty/libptyqt/conptyprocess.cpp
@@ -988,8 +988,11 @@ bool ConPtyProcess::startProcess(const QString &executable,
GetExitCodeProcess(hEvent, &exitCode);
m_exitCode = exitCode;
// Do not respawn if the object is about to be destructed
- if (!m_aboutToDestruct)
- emit notifier()->aboutToClose();
+ if (!m_aboutToDestruct) {
+ ConptyClosePseudoConsole(m_ptyHandler);
+ m_ptyHandler = INVALID_HANDLE_VALUE;
+ emit notifier() -> aboutToClose();
+ }
m_shellCloseWaitNotifier->setEnabled(false);
}, Qt::QueuedConnection);
@@ -1028,7 +1031,7 @@ bool ConPtyProcess::startProcess(const QString &executable,
bool ConPtyProcess::resize(qint16 cols, qint16 rows)
{
- if (m_ptyHandler == nullptr)
+ if (m_ptyHandler == INVALID_HANDLE_VALUE)
{
return false;
}
@@ -1047,49 +1050,45 @@ bool ConPtyProcess::resize(qint16 cols, qint16 rows)
bool ConPtyProcess::kill()
{
- bool exitCode = false;
-
if (m_ptyHandler != INVALID_HANDLE_VALUE) {
m_aboutToDestruct = true;
// Close ConPTY - this will terminate client process if running
WindowsContext::instance().closePseudoConsole(m_ptyHandler);
-
- // Clean-up the pipes
- if (INVALID_HANDLE_VALUE != m_hPipeOut)
- CloseHandle(m_hPipeOut);
- if (INVALID_HANDLE_VALUE != m_hPipeIn)
- CloseHandle(m_hPipeIn);
-
- if (m_readThread) {
- m_readThread->requestInterruption();
- if (!m_readThread->wait(1000))
- m_readThread->terminate();
- m_readThread->deleteLater();
- m_readThread = nullptr;
- }
-
- delete m_shellCloseWaitNotifier;
- m_shellCloseWaitNotifier = nullptr;
-
- m_pid = 0;
- m_ptyHandler = INVALID_HANDLE_VALUE;
- m_hPipeIn = INVALID_HANDLE_VALUE;
- m_hPipeOut = INVALID_HANDLE_VALUE;
-
- CloseHandle(m_shellProcessInformation.hThread);
- CloseHandle(m_shellProcessInformation.hProcess);
-
- // Cleanup attribute list
- if (m_shellStartupInfo.lpAttributeList) {
- DeleteProcThreadAttributeList(m_shellStartupInfo.lpAttributeList);
- HeapFree(GetProcessHeap(), 0, m_shellStartupInfo.lpAttributeList);
- }
-
- exitCode = true;
}
- return exitCode;
+ // Clean-up the pipes
+ if (INVALID_HANDLE_VALUE != m_hPipeOut)
+ CloseHandle(m_hPipeOut);
+ if (INVALID_HANDLE_VALUE != m_hPipeIn)
+ CloseHandle(m_hPipeIn);
+
+ if (m_readThread) {
+ m_readThread->requestInterruption();
+ if (!m_readThread->wait(1000))
+ m_readThread->terminate();
+ m_readThread->deleteLater();
+ m_readThread = nullptr;
+ }
+
+ delete m_shellCloseWaitNotifier;
+ m_shellCloseWaitNotifier = nullptr;
+
+ m_pid = 0;
+ m_ptyHandler = INVALID_HANDLE_VALUE;
+ m_hPipeIn = INVALID_HANDLE_VALUE;
+ m_hPipeOut = INVALID_HANDLE_VALUE;
+
+ CloseHandle(m_shellProcessInformation.hThread);
+ CloseHandle(m_shellProcessInformation.hProcess);
+
+ // Cleanup attribute list
+ if (m_shellStartupInfo.lpAttributeList) {
+ DeleteProcThreadAttributeList(m_shellStartupInfo.lpAttributeList);
+ HeapFree(GetProcessHeap(), 0, m_shellStartupInfo.lpAttributeList);
+ }
+
+ return true;
}
IPtyProcess::PtyType ConPtyProcess::type()
diff --git a/src/libs/3rdparty/sol2/include/sol/sol.hpp b/src/libs/3rdparty/sol2/include/sol/sol.hpp
index 85665a50c93..c3e5fa31ae3 100644
--- a/src/libs/3rdparty/sol2/include/sol/sol.hpp
+++ b/src/libs/3rdparty/sol2/include/sol/sol.hpp
@@ -6818,7 +6818,8 @@ namespace sol {
static_assert(std::is_constructible::value, "T must be constructible with Args");
*this = nullopt;
- this->construct(std::forward(args)...);
+ new (static_cast(this)) optional(std::in_place, std::forward(args)...);
+ return **this;
}
/// Swaps this optional with the other.
diff --git a/src/libs/3rdparty/syntax-highlighting/CMakeLists.txt b/src/libs/3rdparty/syntax-highlighting/CMakeLists.txt
index ce22946d84f..a19cd57f070 100644
--- a/src/libs/3rdparty/syntax-highlighting/CMakeLists.txt
+++ b/src/libs/3rdparty/syntax-highlighting/CMakeLists.txt
@@ -24,7 +24,6 @@ add_qtc_library(KSyntaxHighlighting
src/lib/contextswitch.cpp src/lib/contextswitch_p.h
src/lib/definition.cpp src/lib/definition.h
src/lib/definitiondownloader.cpp src/lib/definitiondownloader.h
- src/lib/definitionref_p.h
src/lib/definition_p.h
src/lib/dynamicregexpcache_p.h
src/lib/foldingregion.cpp src/lib/foldingregion.h
diff --git a/src/libs/3rdparty/syntax-highlighting/autogenerated/ksyntaxhighlighting_version.h b/src/libs/3rdparty/syntax-highlighting/autogenerated/ksyntaxhighlighting_version.h
index d568d1813d6..a24cb62f555 100644
--- a/src/libs/3rdparty/syntax-highlighting/autogenerated/ksyntaxhighlighting_version.h
+++ b/src/libs/3rdparty/syntax-highlighting/autogenerated/ksyntaxhighlighting_version.h
@@ -3,10 +3,10 @@
#ifndef KSYNTAXHIGHLIGHTING_VERSION_H
#define KSYNTAXHIGHLIGHTING_VERSION_H
-#define KSYNTAXHIGHLIGHTING_VERSION_STRING "5.249.0"
-#define KSYNTAXHIGHLIGHTING_VERSION_MAJOR 5
-#define KSYNTAXHIGHLIGHTING_VERSION_MINOR 249
+#define KSYNTAXHIGHLIGHTING_VERSION_STRING "6.7.0"
+#define KSYNTAXHIGHLIGHTING_VERSION_MAJOR 6
+#define KSYNTAXHIGHLIGHTING_VERSION_MINOR 7
#define KSYNTAXHIGHLIGHTING_VERSION_PATCH 0
-#define KSYNTAXHIGHLIGHTING_VERSION ((5<<16)|(249<<8)|(0))
+#define KSYNTAXHIGHLIGHTING_VERSION ((6<<16)|(7<<8)|(0))
#endif
diff --git a/src/libs/3rdparty/syntax-highlighting/data/syntax/bash.xml b/src/libs/3rdparty/syntax-highlighting/data/syntax/bash.xml
index b3e8334fdaa..1e019f4f607 100644
--- a/src/libs/3rdparty/syntax-highlighting/data/syntax/bash.xml
+++ b/src/libs/3rdparty/syntax-highlighting/data/syntax/bash.xml
@@ -56,17 +56,22 @@
-
-
+
+
]>
+
+
+
@@ -1239,12 +1245,12 @@
-
+
-
+
@@ -1368,7 +1374,7 @@
-
+
@@ -1495,13 +1501,19 @@
-
+
+
+
+
-
+
+
+
+
@@ -1525,8 +1537,12 @@
+
+
+
-
+
+
@@ -1641,7 +1657,10 @@
-
+
+
+
+
@@ -1657,7 +1676,10 @@
-
+
+
+
+
@@ -1773,7 +1795,7 @@
-
+
@@ -1788,7 +1810,7 @@
-
+
@@ -1807,7 +1829,7 @@
-
+
diff --git a/src/libs/3rdparty/syntax-highlighting/data/syntax/cmake.xml b/src/libs/3rdparty/syntax-highlighting/data/syntax/cmake.xml
index 256619d3ff8..f2fb658a022 100644
--- a/src/libs/3rdparty/syntax-highlighting/data/syntax/cmake.xml
+++ b/src/libs/3rdparty/syntax-highlighting/data/syntax/cmake.xml
@@ -18,14 +18,13 @@
-->
DEFER
- DIRECTORY
- EVAL
+ - EXIT
- GET_CALL
- GET_CALL_IDS
- GET_MESSAGE_LOG_LEVEL
@@ -315,8 +315,11 @@
- IN_LIST
- IS_ABSOLUTE
- IS_DIRECTORY
+ - IS_EXECUTABLE
- IS_NEWER_THAN
+ - IS_READABLE
- IS_SYMLINK
+ - IS_WRITABLE
- LESS
- LESS_EQUAL
- MATCHES
@@ -480,6 +483,7 @@
- TIMESTAMP
- TLS_CAINFO
- TLS_VERIFY
+ - TLS_VERSION
- TOUCH
- TOUCH_NOCREATE
- TO_CMAKE_PATH
@@ -970,11 +974,17 @@
- ANDROID_MK
- APPEND
+ - AUTO
+ - ENABLED
- EXPORT
- EXPORT_LINK_INTERFACE_LIBRARIES
- FILE
- NAMESPACE
+ - PACKAGE_DEPENDENCY
+ - SETUP
+ - TARGET
- TARGETS
+ - XCFRAMEWORK_LOCATION
- DIRECTORY
@@ -1358,8 +1368,10 @@
- EXCLUDE_FIXTURE
- EXCLUDE_FIXTURE_CLEANUP
- EXCLUDE_FIXTURE_SETUP
+ - EXCLUDE_FROM_FILE
- EXCLUDE_LABEL
- INCLUDE
+ - INCLUDE_FROM_FILE
- INCLUDE_LABEL
- PARALLEL_LEVEL
- QUIET
@@ -1468,6 +1480,28 @@
- SameMajorVersion
- SameMinorVersion
+
+ - INSTALL_DESTINATION
+ - INSTALL_PREFIX
+ - IOS_INCLUDE_FILE
+ - IOS_SIMULATOR_INCLUDE_FILE
+ - MACOS_INCLUDE_FILE
+ - TVOS_INCLUDE_FILE
+ - TVOS_SIMULATOR_INCLUDE_FILE
+ - VISIONOS_INCLUDE_FILE
+ - VISIONOS_SIMULATOR_INCLUDE_FILE
+ - WATCHOS_INCLUDE_FILE
+ - WATCHOS_SIMULATOR_INCLUDE_FILE
+
+
+ - ERROR_VARIABLE
+ - INSTALL_DESTINATION
+ - INSTALL_PREFIX
+ - SINGLE_ARCHITECTURES
+ - SINGLE_ARCHITECTURE_INCLUDE_FILES
+ - UNIVERSAL_ARCHITECTURES
+ - UNIVERSAL_INCLUDE_FILE
+
- CACHE_ENTRIES
- DIRECTORIES
@@ -1667,6 +1701,7 @@
- TIMEOUT
- TLS_CAINFO
- TLS_VERIFY
+ - TLS_VERSION
- TMP_DIR
- UPDATE_COMMAND
- UPDATE_DISCONNECTED
@@ -2165,7 +2200,6 @@
- CMAKE_AUTOMOC_EXECUTABLE
- CMAKE_AUTOMOC_MOC_OPTIONS
- CMAKE_AUTOMOC_PATH_PREFIX
- - CMAKE_AUTOMOC_RELAXED_MODE
- CMAKE_AUTORCC
- CMAKE_AUTORCC_EXECUTABLE
- CMAKE_AUTORCC_OPTIONS
@@ -2173,7 +2207,6 @@
- CMAKE_AUTOUIC_EXECUTABLE
- CMAKE_AUTOUIC_OPTIONS
- CMAKE_AUTOUIC_SEARCH_PATHS
- - CMAKE_BACKWARDS_COMPATIBILITY
- CMAKE_BINARY_DIR
- CMAKE_BUILD_RPATH
- CMAKE_BUILD_RPATH_USE_ORIGIN
@@ -2195,9 +2228,6 @@
- CMAKE_COLOR_MAKEFILE
- CMAKE_COMMAND
- CMAKE_COMPILER_2005
- - CMAKE_COMPILER_IS_GNUCC
- - CMAKE_COMPILER_IS_GNUCXX
- - CMAKE_COMPILER_IS_GNUG77
- CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY
- CMAKE_COMPILE_WARNING_AS_ERROR
- CMAKE_CONFIGURATION_TYPES
@@ -2268,7 +2298,6 @@
- CMAKE_EXPORT_COMPILE_COMMANDS
- CMAKE_EXPORT_NO_PACKAGE_REGISTRY
- CMAKE_EXPORT_PACKAGE_REGISTRY
- - CMAKE_EXTRA_GENERATOR
- CMAKE_EXTRA_INCLUDE_FILES
- CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES
- CMAKE_FIND_APPBUNDLE
@@ -2280,8 +2309,6 @@
- CMAKE_FIND_LIBRARY_SUFFIXES
- CMAKE_FIND_NO_INSTALL_PREFIX
- CMAKE_FIND_PACKAGE_NAME
- - CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY
- - CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY
- CMAKE_FIND_PACKAGE_PREFER_CONFIG
- CMAKE_FIND_PACKAGE_REDIRECTS_DIR
- CMAKE_FIND_PACKAGE_RESOLVE_SYMLINKS
@@ -2424,6 +2451,7 @@
- CMAKE_LIBRARY_OUTPUT_DIRECTORY
- CMAKE_LIBRARY_PATH
- CMAKE_LIBRARY_PATH_FLAG
+ - CMAKE_LINKER_TYPE
- CMAKE_LINK_DEF_FILE_FLAG
- CMAKE_LINK_DEPENDS_NO_SHARED
- CMAKE_LINK_DEPENDS_USE_LINKER
@@ -2523,6 +2551,7 @@
- CMAKE_SKIP_INSTALL_RPATH
- CMAKE_SKIP_INSTALL_RULES
- CMAKE_SKIP_RPATH
+ - CMAKE_SKIP_TEST_ALL_DEPENDENCY
- CMAKE_SOURCE_DIR
- CMAKE_STAGING_PREFIX
- CMAKE_STATIC_LIBRARY_PREFIX
@@ -2549,9 +2578,12 @@
- CMAKE_SYSTEM_PROCESSOR
- CMAKE_SYSTEM_PROGRAM_PATH
- CMAKE_SYSTEM_VERSION
+ - CMAKE_Swift_COMPILATION_MODE
- CMAKE_Swift_LANGUAGE_VERSION
- CMAKE_Swift_MODULE_DIRECTORY
+ - CMAKE_Swift_NUM_THREADS
- CMAKE_TASKING_TOOLSET
+ - CMAKE_TEST_LAUNCHER
- CMAKE_THREAD_LIBS_INIT
- CMAKE_THREAD_PREFER_PTHREAD
- CMAKE_TOOLCHAIN_FILE
@@ -2564,7 +2596,6 @@
- CMAKE_UNITY_BUILD_BATCH_SIZE
- CMAKE_USER_MAKE_RULES_OVERRIDE
- CMAKE_USE_PTHREADS_INIT
- - CMAKE_USE_RELATIVE_PATHS
- CMAKE_USE_SPROC_INIT
- CMAKE_USE_WIN32_THREADS_INIT
- CMAKE_VERBOSE_MAKEFILE
@@ -2600,6 +2631,7 @@
- CMAKE_VS_TARGET_FRAMEWORK_IDENTIFIER
- CMAKE_VS_TARGET_FRAMEWORK_TARGETS_VERSION
- CMAKE_VS_TARGET_FRAMEWORK_VERSION
+ - CMAKE_VS_USE_DEBUG_LIBRARIES
- CMAKE_VS_VERSION_BUILD_NUMBER
- CMAKE_VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION
- CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION
@@ -2852,10 +2884,15 @@
- CPACK_NUGET_PACKAGE_LICENSE_FILE_NAME
- CPACK_NUGET_PACKAGE_NAME
- CPACK_NUGET_PACKAGE_OWNERS
+ - CPACK_NUGET_PACKAGE_README
- CPACK_NUGET_PACKAGE_RELEASE_NOTES
+ - CPACK_NUGET_PACKAGE_REPOSITORY_BRANCH
+ - CPACK_NUGET_PACKAGE_REPOSITORY_COMMIT
+ - CPACK_NUGET_PACKAGE_REPOSITORY_TYPE
+ - CPACK_NUGET_PACKAGE_REPOSITORY_URL
- CPACK_NUGET_PACKAGE_TAGS
+ - CPACK_NUGET_PACKAGE_TFMS
- CPACK_NUGET_PACKAGE_TITLE
- - CPACK_NUGET_PACKAGE_VERSION
- CPACK_OBJCOPY_EXECUTABLE
- CPACK_OBJDUMP_EXECUTABLE
- CPACK_OUTPUT_CONFIG_FILE
@@ -2987,6 +3024,7 @@
- CPACK_WIX_EXTENSIONS
- CPACK_WIX_EXTRA_OBJECTS
- CPACK_WIX_EXTRA_SOURCES
+ - CPACK_WIX_INSTALL_SCOPE
- CPACK_WIX_LICENSE_RTF
- CPACK_WIX_PATCH_FILE
- CPACK_WIX_PRODUCT_GUID
@@ -3033,7 +3071,6 @@
- CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION
- CTEST_CUSTOM_WARNING_EXCEPTION
- CTEST_CUSTOM_WARNING_MATCH
- - CTEST_CVS_CHECKOUT
- CTEST_CVS_COMMAND
- CTEST_CVS_UPDATE_OPTIONS
- CTEST_DROP_LOCATION
@@ -3062,7 +3099,6 @@
- CTEST_P4_UPDATE_OPTIONS
- CTEST_RESOURCE_SPEC_FILE
- CTEST_RUN_CURRENT_SCRIPT
- - CTEST_SCP_COMMAND
- CTEST_SITE
- CTEST_SOURCE_DIRECTORY
- CTEST_SUBMIT_INACTIVITY_TIMEOUT
@@ -3072,7 +3108,8 @@
- CTEST_SVN_UPDATE_OPTIONS
- CTEST_TEST_LOAD
- CTEST_TEST_TIMEOUT
- - CTEST_TRIGGER_SITE
+ - CTEST_TLS_VERIFY
+ - CTEST_TLS_VERSION
- CTEST_UPDATE_COMMAND
- CTEST_UPDATE_OPTIONS
- CTEST_UPDATE_VERSION_ONLY
@@ -3297,15 +3334,6 @@
- MPI_SKIP_GUESSING
- MPI_SUBARRAYS_SUPPORTED
- MSVC
- - MSVC10
- - MSVC11
- - MSVC12
- - MSVC14
- - MSVC60
- - MSVC70
- - MSVC71
- - MSVC80
- - MSVC90
- MSVC_IDE
- MSVC_TOOLSET_VERSION
- MSVC_VERSION
@@ -3337,6 +3365,7 @@
- OpenGL_GL_PREFERENCE
- OpenMP_Fortran_HAVE_OMPLIB_HEADER
- OpenMP_Fortran_HAVE_OMPLIB_MODULE
+ - OpenMP_RUNTIME_MSVC
- PACKAGE_FIND_NAME
- PACKAGE_FIND_VERSION_COMPLETE
- PACKAGE_FIND_VERSION_COUNT
@@ -3409,8 +3438,10 @@
- Python2_ARTIFACTS_INTERACTIVE
- Python2_COMPILER
- Python2_COMPILER_ID
+ - Python2_DEBUG_POSTFIX
- Python2_DOTNET_LAUNCHER
- Python2_EXECUTABLE
+ - Python2_EXECUTABLE_DEBUG
- Python2_FIND_ABI
- Python2_FIND_FRAMEWORK
- Python2_FIND_IMPLEMENTATIONS
@@ -3418,6 +3449,7 @@
- Python2_FIND_STRATEGY
- Python2_FIND_UNVERSIONED_NAMES
- Python2_FIND_VIRTUALENV
+ - Python2_INTERPRETER
- Python2_INTERPRETER_ID
- Python2_LINK_OPTIONS
- Python2_SITEARCH
@@ -3429,8 +3461,10 @@
- Python3_ARTIFACTS_INTERACTIVE
- Python3_COMPILER
- Python3_COMPILER_ID
+ - Python3_DEBUG_POSTFIX
- Python3_DOTNET_LAUNCHER
- Python3_EXECUTABLE
+ - Python3_EXECUTABLE_DEBUG
- Python3_FIND_ABI
- Python3_FIND_FRAMEWORK
- Python3_FIND_IMPLEMENTATIONS
@@ -3438,19 +3472,23 @@
- Python3_FIND_STRATEGY
- Python3_FIND_UNVERSIONED_NAMES
- Python3_FIND_VIRTUALENV
+ - Python3_INTERPRETER
- Python3_INTERPRETER_ID
- Python3_LINK_OPTIONS
- Python3_SITEARCH
- Python3_SITELIB
- Python3_SOABI
+ - Python3_SOSABI
- Python3_STDARCH
- Python3_STDLIB
- Python3_USE_STATIC_LIBS
- Python_ARTIFACTS_INTERACTIVE
- Python_COMPILER
- Python_COMPILER_ID
+ - Python_DEBUG_POSTFIX
- Python_DOTNET_LAUNCHER
- Python_EXECUTABLE
+ - Python_EXECUTABLE_DEBUG
- Python_FIND_ABI
- Python_FIND_FRAMEWORK
- Python_FIND_IMPLEMENTATIONS
@@ -3458,11 +3496,13 @@
- Python_FIND_STRATEGY
- Python_FIND_UNVERSIONED_NAMES
- Python_FIND_VIRTUALENV
+ - Python_INTERPRETER
- Python_INTERPRETER_ID
- Python_LINK_OPTIONS
- Python_SITEARCH
- Python_SITELIB
- Python_SOABI
+ - Python_SOSABI
- Python_STDARCH
- Python_STDLIB
- Python_USE_STATIC_LIBS
@@ -3529,8 +3569,16 @@
+ - CMAKE_AUTOMOC_RELAXED_MODE
+ - CMAKE_BACKWARDS_COMPATIBILITY
+ - CMAKE_COMPILER_IS_GNUCC
+ - CMAKE_COMPILER_IS_GNUCXX
+ - CMAKE_COMPILER_IS_GNUG77
- CMAKE_ENABLE_EXPORTS
+ - CMAKE_EXTRA_GENERATOR
- CMAKE_FILES_DIRECTORY
+ - CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY
+ - CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY
- CMAKE_HOME_DIRECTORY
- CMAKE_INTERNAL_PLATFORM_ABI
- CMAKE_IOS_INSTALL_COMBINED
@@ -3539,6 +3587,7 @@
- CMAKE_SUPPRESS_DEVELOPER_ERRORS
- CMAKE_SUPPRESS_DEVELOPER_WARNINGS
- CMAKE_SYSTEM_ARCH
+ - CMAKE_USE_RELATIVE_PATHS
- CMAKE_VS_INTEL_Fortran_PROJECT_VERSION
- CPACK_INSTALL_PREFIX
- CPACK_INSTALL_SCRIPT
@@ -3546,6 +3595,18 @@
- CPACK_PACKAGE_RELOCATABLE
- CPACK_TEMPORARY_DIRECTORY
- CPACK_TOPLEVEL_DIRECTORY
+ - CTEST_CVS_CHECKOUT
+ - CTEST_SCP_COMMAND
+ - CTEST_TRIGGER_SITE
+ - MSVC10
+ - MSVC11
+ - MSVC12
+ - MSVC14
+ - MSVC60
+ - MSVC70
+ - MSVC71
+ - MSVC80
+ - MSVC90
@@ -3567,11 +3628,18 @@
- CMAKE_GENERATOR_INSTANCE
- CMAKE_GENERATOR_PLATFORM
- CMAKE_GENERATOR_TOOLSET
+ - CMAKE_INCLUDE_PATH
- CMAKE_INSTALL_MODE
+ - CMAKE_INSTALL_PREFIX
+ - CMAKE_LIBRARY_PATH
+ - CMAKE_MAXIMUM_RECURSION_DEPTH
- CMAKE_MSVCIDE_RUN_PATH
- CMAKE_NO_VERBOSE
- CMAKE_OSX_ARCHITECTURES
- CMAKE_PREFIX_PATH
+ - CMAKE_PROGRAM_PATH
+ - CMAKE_TLS_VERIFY
+ - CMAKE_TLS_VERSION
- CMAKE_TOOLCHAIN_FILE
- CSFLAGS
- CTEST_INTERACTIVE_DEBUG_MODE
@@ -3639,6 +3707,7 @@
- PACKAGES_FOUND
- PACKAGES_NOT_FOUND
- PREDEFINED_TARGETS_FOLDER
+ - PROPAGATE_TOP_LEVEL_INCLUDES_TO_TRY_COMPILE
- REPORT_UNDEFINED_PROPERTIES
- RULE_LAUNCH_COMPILE
- RULE_LAUNCH_CUSTOM
@@ -3914,9 +3983,14 @@
- STATIC_LIBRARY_OPTIONS
- SUFFIX
- SYSTEM
+ - Swift_COMPILATION_MODE
- Swift_DEPENDENCIES_FILE
+ - Swift_LANGUAGE_VERSION
- Swift_MODULE_DIRECTORY
- Swift_MODULE_NAME
+ - TEST_LAUNCHER
+ - TRANSITIVE_COMPILE_PROPERTIES
+ - TRANSITIVE_LINK_PROPERTIES
- TYPE
- UNITY_BUILD
- UNITY_BUILD_BATCH_SIZE
@@ -3939,6 +4013,7 @@
- VS_DOTNET_STARTUP_OBJECT
- VS_DOTNET_TARGET_FRAMEWORK_VERSION
- VS_DPI_AWARE
+ - VS_FILTER_PROPS
- VS_GLOBAL_KEYWORD
- VS_GLOBAL_PROJECT_TYPES
- VS_GLOBAL_ROOTNAMESPACE
@@ -3959,6 +4034,7 @@
- VS_SDK_REFERENCES
- VS_SOLUTION_DEPLOY
- VS_USER_PROPS
+ - VS_USE_DEBUG_LIBRARIES
- VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION
- VS_WINRT_COMPONENT
- VS_WINRT_EXTENSIONS
@@ -4144,6 +4220,14 @@
- Fortran_COMPILER_ID
- HIP_COMPILER_ID
- ISPC_COMPILER_ID
+ - C_COMPILER_FRONTEND_VARIANT
+ - CXX_COMPILER_FRONTEND_VARIANT
+ - CUDA_COMPILER_FRONTEND_VARIANT
+ - OBJC_COMPILER_FRONTEND_VARIANT
+ - OBJCXX_COMPILER_FRONTEND_VARIANT
+ - Fortran_COMPILER_FRONTEND_VARIANT
+ - HIP_COMPILER_FRONTEND_VARIANT
+ - ISPC_COMPILER_FRONTEND_VARIANT
- COMPILE_LANGUAGE
- COMPILE_LANG_AND_ID
- COMPILE_FEATURES
@@ -4200,6 +4284,7 @@
- ANGLE-R
- COMMA
- SEMICOLON
+ - QUOTE
- LENGTH
@@ -4719,6 +4804,8 @@
+
+
@@ -5469,13 +5556,14 @@
+
-
+
@@ -5550,7 +5638,7 @@
-
+
@@ -6023,6 +6111,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -6037,7 +6145,7 @@
-
+
@@ -6381,7 +6489,7 @@
-
+
@@ -6401,7 +6509,7 @@
-
+
@@ -6632,7 +6740,7 @@
-
+
diff --git a/src/libs/3rdparty/syntax-highlighting/data/syntax/json.xml b/src/libs/3rdparty/syntax-highlighting/data/syntax/json.xml
index f302ff13692..c70f2f9f2bc 100644
--- a/src/libs/3rdparty/syntax-highlighting/data/syntax/json.xml
+++ b/src/libs/3rdparty/syntax-highlighting/data/syntax/json.xml
@@ -13,7 +13,7 @@
** https://www.json.org/json-en.html
***************************************************************************
-->
-
+
- null
@@ -62,7 +62,7 @@
-
+
diff --git a/src/libs/3rdparty/syntax-highlighting/data/syntax/markdown.xml b/src/libs/3rdparty/syntax-highlighting/data/syntax/markdown.xml
index c3811c772fb..5d06806afd9 100644
--- a/src/libs/3rdparty/syntax-highlighting/data/syntax/markdown.xml
+++ b/src/libs/3rdparty/syntax-highlighting/data/syntax/markdown.xml
@@ -94,7 +94,7 @@
]>
-
+
@@ -369,7 +369,8 @@
-
+
+
@@ -492,9 +493,13 @@
-
+
-
+
+
+
+
+
diff --git a/src/libs/3rdparty/syntax-highlighting/data/syntax/modelines.xml b/src/libs/3rdparty/syntax-highlighting/data/syntax/modelines.xml
index 855bca48029..bccdf70bdfa 100644
--- a/src/libs/3rdparty/syntax-highlighting/data/syntax/modelines.xml
+++ b/src/libs/3rdparty/syntax-highlighting/data/syntax/modelines.xml
@@ -1,14 +1,10 @@
-
-
-]>
+
- auto-brackets
-
+
- automatic-spell-checking
- backspace-indents
- - block-selection
- bookmark-sorting
- bom
- byte-order-marker
- byte-order-mark
- dynamic-word-wrap
+ - enter-to-insert-completion
- folding-markers
- folding-preview
- icon-border
@@ -55,7 +51,8 @@
- replace-tabs-save
- replace-tabs
- - replace-trailing-space-save
+
+
- smart-home
- scrollbar-minimap
- scrollbar-preview
@@ -64,7 +61,6 @@
- show-trailing-spaces
- tab-indents
- word-wrap
- - wrap-cursor
@@ -82,10 +78,10 @@
- auto-center-lines
- font-size
- - indent-mode
- indent-width
- tab-width
- - undo-steps
+
+
- word-wrap-column
@@ -100,6 +96,7 @@
- font
- hl
- icon-bar-color
+ - indent-mode
- mode
- scheme
- selection-color
@@ -129,7 +126,6 @@
-
@@ -141,31 +137,28 @@
-
-
-
-
+
+
+
-
-
-
+
+
-
-
-
+
-
-
-
+
+
-
-
+
+
+
+
diff --git a/src/libs/3rdparty/syntax-highlighting/data/syntax/perl.xml b/src/libs/3rdparty/syntax-highlighting/data/syntax/perl.xml
index ed843a7d461..94f8e72f14f 100644
--- a/src/libs/3rdparty/syntax-highlighting/data/syntax/perl.xml
+++ b/src/libs/3rdparty/syntax-highlighting/data/syntax/perl.xml
@@ -39,7 +39,7 @@
Enhance tr/// and y/// support.
-->
-
+
- if
diff --git a/src/libs/3rdparty/syntax-highlighting/data/syntax/qface.xml b/src/libs/3rdparty/syntax-highlighting/data/syntax/qface.xml
new file mode 100644
index 00000000000..a25a7df3660
--- /dev/null
+++ b/src/libs/3rdparty/syntax-highlighting/data/syntax/qface.xml
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+ - flag
+ - enum
+
+
+ - interface
+ - struct
+
+
+ - string
+ - int
+ - bool
+ - real
+ - double
+ - void
+ - var
+
+
+ - readonly
+ - const
+ - model
+ - list
+ - signal
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/libs/3rdparty/syntax-highlighting/data/syntax/ruby.xml b/src/libs/3rdparty/syntax-highlighting/data/syntax/ruby.xml
index 7c1163910ff..3268f604c68 100644
--- a/src/libs/3rdparty/syntax-highlighting/data/syntax/ruby.xml
+++ b/src/libs/3rdparty/syntax-highlighting/data/syntax/ruby.xml
@@ -1,5 +1,42 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ._*$?:"=,;]|[0-9]+|-\w|[[:alpha:]]\w*)">
+
+
+ ?|(?!<))|[!>]=?|\.\.\.?)">
+
+
+
+
+
+
+
+
+
+
+ ?)?|>=?|=~|===?|\*\*?">
+
+]>
-
-.
+-->
+
+
+ author="Stefan Lang (langstefan@gmx.at), Sebastian Vuorinen (sebastian.vuorinen@helsinki.fi), Robin Pedersen (robinpeder@gmail.com), Miquel Sabaté (mikisabate@gmail.com), Jonathan Poelen (jonathan.poelen@gmail.com)"
+ license="LGPLv2+">
-
- - BEGIN
- - END
- - and
- - begin
- - break
- - case
- - defined?
- - do
- - else
- - elsif
+
+ - class
+ - def
- end
- ensure
- - for
- - if
+ - when
+ keyword-begin-end-cond
+ keyword-block-cond
+ keyword-block-then-value
+ keyword-block
+ keyword-loop
+ keyword-then-stmt
+ keyword-then-value
+
+
+
+ - break
+ - defined?
- in
- next
- - not
- - or
- redo
- - rescue
- retry
- return
+ - yield
+
+
+
+ - and
+ - not
+ - or
- then
+ - BEGIN
+ - END
+
+
+
+ - begin
+ - do
+
+
+
+ - case
+ - module
+
+
+
+
+ - if
+ - unless
+
+
+
+ - else
+ - elsif
+ - rescue
+
+
+
+
+ - for
+ - until
+ - while
+
+
+
+ - if
- unless
- until
- - when
- - yield
+ - while
+ - rescue
@@ -104,9 +230,7 @@
- $stdout
- - $defout
- $stderr
- - $deferr
- $stdin
@@ -188,688 +312,1030 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
+
-
+
+
- There is no other chance of keeping heredoc apart from the
- push operator '<<' than requiring to put space between the operator
- and the string.
- -->
-
-
+
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
-
-
-
+
-
-
+
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
-
-
-
-
-
-
-
+
-
+
+
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
+
+
+
-
-
-
+
+
+
+
-
-
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
+
+
+
-
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -883,17 +1349,21 @@
-
+
+
+
+
+
-
+
@@ -906,7 +1376,7 @@
-
+
@@ -916,7 +1386,9 @@
-
+
+
+
diff --git a/src/libs/3rdparty/syntax-highlighting/data/syntax/xml.xml b/src/libs/3rdparty/syntax-highlighting/data/syntax/xml.xml
index da1910e26c3..5f02dcc5bd7 100644
--- a/src/libs/3rdparty/syntax-highlighting/data/syntax/xml.xml
+++ b/src/libs/3rdparty/syntax-highlighting/data/syntax/xml.xml
@@ -6,7 +6,7 @@
]>
-
+
@@ -99,6 +99,7 @@
+
diff --git a/src/libs/3rdparty/syntax-highlighting/data/syntax/yaml.xml b/src/libs/3rdparty/syntax-highlighting/data/syntax/yaml.xml
index 120dbd55f7f..3fb6880f868 100644
--- a/src/libs/3rdparty/syntax-highlighting/data/syntax/yaml.xml
+++ b/src/libs/3rdparty/syntax-highlighting/data/syntax/yaml.xml
@@ -53,8 +53,8 @@
-
diff --git a/src/libs/3rdparty/syntax-highlighting/src/cli/ksyntaxhighlighter.cpp b/src/libs/3rdparty/syntax-highlighting/src/cli/ksyntaxhighlighter.cpp
index 681410cb706..886734ec72f 100644
--- a/src/libs/3rdparty/syntax-highlighting/src/cli/ksyntaxhighlighter.cpp
+++ b/src/libs/3rdparty/syntax-highlighting/src/cli/ksyntaxhighlighter.cpp
@@ -17,7 +17,7 @@
#include
#include
-#include
+#include
using namespace KSyntaxHighlighting;
@@ -93,16 +93,15 @@ int main(int argc, char **argv)
app.translate("SyntaxHighlightingCLI", "theme"));
parser.addOption(themeName);
- QCommandLineOption outputFormatOption(
- QStringList() << QStringLiteral("f") << QStringLiteral("output-format"),
- app.translate("SyntaxHighlightingCLI", "Use the specified format instead of html. Must be html, ansi or ansi256Colors."),
- app.translate("SyntaxHighlightingCLI", "format"),
- QStringLiteral("html"));
+ QCommandLineOption outputFormatOption(QStringList() << QStringLiteral("f") << QStringLiteral("output-format"),
+ app.translate("SyntaxHighlightingCLI", "Use the specified format instead of html. Must be html, ansi or ansi256."),
+ app.translate("SyntaxHighlightingCLI", "format"),
+ QStringLiteral("html"));
parser.addOption(outputFormatOption);
QCommandLineOption traceOption(QStringList() << QStringLiteral("syntax-trace"),
app.translate("SyntaxHighlightingCLI",
- "Add information to debug a syntax file. Only works with --output-format=ansi or ansi256Colors. Possible "
+ "Add information to debug a syntax file. Only works with --output-format=ansi or ansi256. Possible "
"values are format, region, context, stackSize and all."),
app.translate("SyntaxHighlightingCLI", "type"));
parser.addOption(traceOption);
@@ -111,8 +110,13 @@ int main(int argc, char **argv)
app.translate("SyntaxHighlightingCLI", "Disable ANSI background for the default color."));
parser.addOption(noAnsiEditorBg);
+ QCommandLineOption bgRole(QStringList() << QStringLiteral("B") << QStringLiteral("background-role"),
+ app.translate("SyntaxHighlightingCLI", "Select background color role from theme."),
+ app.translate("SyntaxHighlightingCLI", "role"));
+ parser.addOption(bgRole);
+
QCommandLineOption unbufferedAnsi(QStringList() << QStringLiteral("U") << QStringLiteral("unbuffered"),
- app.translate("SyntaxHighlightingCLI", "For ansi and ansi256Colors formats, flush the output buffer on each line."));
+ app.translate("SyntaxHighlightingCLI", "For ansi and ansi256 formats, flush the output buffer on each line."));
parser.addOption(unbufferedAnsi);
QCommandLineOption titleOption(
@@ -127,22 +131,84 @@ int main(int argc, char **argv)
if (parser.isSet(listDefs)) {
for (const auto &def : repo.definitions()) {
- std::cout << qPrintable(def.name()) << std::endl;
+ fprintf(stdout, "%s\n", qPrintable(def.name()));
}
return 0;
}
if (parser.isSet(listThemes)) {
for (const auto &theme : repo.themes()) {
- std::cout << qPrintable(theme.name()) << std::endl;
+ fprintf(stdout, "%s\n", qPrintable(theme.name()));
}
return 0;
}
+ Theme::EditorColorRole bgColorRole = Theme::BackgroundColor;
+
+ if (parser.isSet(bgRole)) {
+ /*
+ * Theme::EditorColorRole contains border, foreground and background colors.
+ * To ensure that only the background colors used in text editing are used,
+ * QMetaEnum is avoided and values are listed in hard.
+ */
+
+ struct BgRole {
+ QStringView name;
+ Theme::EditorColorRole role;
+ // name for display
+ const char *asciiName;
+ };
+
+#define BG_ROLE(role) \
+ BgRole \
+ { \
+ QStringView(u"" #role, sizeof(#role) - 1), Theme::role, #role \
+ }
+ constexpr BgRole bgRoles[] = {
+ BG_ROLE(BackgroundColor),
+ BG_ROLE(TextSelection),
+ BG_ROLE(CurrentLine),
+ BG_ROLE(SearchHighlight),
+ BG_ROLE(ReplaceHighlight),
+ BG_ROLE(BracketMatching),
+ BG_ROLE(CodeFolding),
+ BG_ROLE(MarkBookmark),
+ BG_ROLE(MarkBreakpointActive),
+ BG_ROLE(MarkBreakpointReached),
+ BG_ROLE(MarkBreakpointDisabled),
+ BG_ROLE(MarkExecution),
+ BG_ROLE(MarkWarning),
+ BG_ROLE(MarkError),
+ BG_ROLE(TemplateBackground),
+ BG_ROLE(TemplatePlaceholder),
+ BG_ROLE(TemplateFocusedPlaceholder),
+ BG_ROLE(TemplateReadOnlyPlaceholder),
+ };
+#undef BG_ROLE
+
+ const auto role = parser.value(bgRole);
+ bool ok = false;
+ for (const auto &def : bgRoles) {
+ if (def.name == role) {
+ bgColorRole = def.role;
+ ok = true;
+ break;
+ }
+ }
+
+ if (!ok) {
+ fprintf(stderr, "Unknown background role. Expected:\n");
+ for (const auto &def : bgRoles) {
+ fprintf(stderr, " - %s\n", def.asciiName);
+ }
+ return 1;
+ }
+ }
+
if (parser.isSet(updateDefs)) {
DefinitionDownloader downloader(&repo);
- QObject::connect(&downloader, &DefinitionDownloader::informationMessage, [](const QString &msg) {
- std::cout << qPrintable(msg) << std::endl;
+ QObject::connect(&downloader, &DefinitionDownloader::informationMessage, &app, [](const QString &msg) {
+ fprintf(stdout, "%s\n", qPrintable(msg));
});
QObject::connect(&downloader, &DefinitionDownloader::done, &app, &QCoreApplication::quit);
downloader.start();
@@ -179,7 +245,7 @@ int main(int argc, char **argv)
}
if (!def.isValid()) {
- std::cerr << "Unknown syntax." << std::endl;
+ fprintf(stderr, "Unknown syntax.\n");
return 1;
}
@@ -192,14 +258,16 @@ int main(int argc, char **argv)
HtmlHighlighter highlighter;
highlighter.setDefinition(def);
+ highlighter.setBackgroundRole(bgColorRole);
highlighter.setTheme(theme(repo, parser.value(themeName), Repository::LightTheme));
applyHighlighter(highlighter, parser, fromFileName, inFileName, outputName, title);
} else {
auto AnsiFormat = AnsiHighlighter::AnsiFormat::TrueColor;
- if (0 == outputFormat.compare(QLatin1String("ansi256Colors"), Qt::CaseInsensitive)) {
+ // compatible with the old ansi256Colors value
+ if (outputFormat.startsWith(QLatin1String("ansi256"), Qt::CaseInsensitive)) {
AnsiFormat = AnsiHighlighter::AnsiFormat::XTerm256Color;
} else if (0 != outputFormat.compare(QLatin1String("ansi"), Qt::CaseInsensitive)) {
- std::cerr << "Unknown output format." << std::endl;
+ fprintf(stderr, "Unknown output format.\n");
return 2;
}
@@ -220,7 +288,7 @@ int main(int argc, char **argv)
} else if (option == QStringLiteral("all")) {
options |= AnsiHighlighter::Option::TraceAll;
} else {
- std::cerr << "Unknown trace name." << std::endl;
+ fprintf(stderr, "Unknown trace name.\n");
return 2;
}
}
@@ -228,6 +296,7 @@ int main(int argc, char **argv)
AnsiHighlighter highlighter;
highlighter.setDefinition(def);
+ highlighter.setBackgroundRole(bgColorRole);
highlighter.setTheme(theme(repo, parser.value(themeName), Repository::DarkTheme));
applyHighlighter(highlighter, parser, fromFileName, inFileName, outputName, AnsiFormat, options);
}
diff --git a/src/libs/3rdparty/syntax-highlighting/src/indexer/katehighlightingindexer.cpp b/src/libs/3rdparty/syntax-highlighting/src/indexer/katehighlightingindexer.cpp
index 787747e21c0..b398eced154 100644
--- a/src/libs/3rdparty/syntax-highlighting/src/indexer/katehighlightingindexer.cpp
+++ b/src/libs/3rdparty/syntax-highlighting/src/indexer/katehighlightingindexer.cpp
@@ -5,6 +5,7 @@
SPDX-License-Identifier: MIT
*/
+#include
#include
#include
#include
@@ -13,11 +14,13 @@
#include
#include
#include
+#include
#include
#include
#ifdef HAS_XERCESC
+#include
#include
#include
@@ -144,34 +147,44 @@ private:
bool m_failed = false;
};
-void init_parser(SAX2XMLReaderImpl &parser)
+class CustomXMLValidator : public SAX2XMLReaderImpl
{
- // Commonly useful configuration.
- //
- parser.setFeature(XMLUni::fgSAX2CoreNameSpaces, true);
- parser.setFeature(XMLUni::fgSAX2CoreNameSpacePrefixes, true);
- parser.setFeature(XMLUni::fgSAX2CoreValidation, true);
+public:
+ QString messages;
+ CustomErrorHandler eh{&messages};
- // Enable validation.
- //
- parser.setFeature(XMLUni::fgXercesSchema, true);
- parser.setFeature(XMLUni::fgXercesSchemaFullChecking, true);
- parser.setFeature(XMLUni::fgXercesValidationErrorAsFatal, true);
+ CustomXMLValidator(XMLGrammarPool *xsd)
+ : SAX2XMLReaderImpl(XMLPlatformUtils::fgMemoryManager, xsd)
+ {
+ // Commonly useful configuration.
+ //
+ setFeature(XMLUni::fgSAX2CoreNameSpaces, true);
+ setFeature(XMLUni::fgSAX2CoreNameSpacePrefixes, true);
+ setFeature(XMLUni::fgSAX2CoreValidation, true);
- // Use the loaded grammar during parsing.
- //
- parser.setFeature(XMLUni::fgXercesUseCachedGrammarInParse, true);
+ // Enable validation.
+ //
+ setFeature(XMLUni::fgXercesSchema, true);
+ setFeature(XMLUni::fgXercesSchemaFullChecking, true);
+ setFeature(XMLUni::fgXercesValidationErrorAsFatal, true);
- // Don't load schemas from any other source (e.g., from XML document's
- // xsi:schemaLocation attributes).
- //
- parser.setFeature(XMLUni::fgXercesLoadSchema, false);
+ // Use the loaded grammar during parsing.
+ //
+ setFeature(XMLUni::fgXercesUseCachedGrammarInParse, true);
- // Xerces-C++ 3.1.0 is the first version with working multi import
- // support.
- //
- parser.setFeature(XMLUni::fgXercesHandleMultipleImports, true);
-}
+ // Don't load schemas from any other source (e.g., from XML document's
+ // xsi:schemaLocation attributes).
+ //
+ setFeature(XMLUni::fgXercesLoadSchema, false);
+
+ // Xerces-C++ 3.1.0 is the first version with working multi import
+ // support.
+ //
+ setFeature(XMLUni::fgXercesHandleMultipleImports, true);
+
+ setErrorHandler(&eh);
+ }
+};
#endif
@@ -183,11 +196,36 @@ void init_parser(SAX2XMLReaderImpl &parser)
using KSyntaxHighlighting::WordDelimiters;
using KSyntaxHighlighting::Xml::attrToBool;
+using namespace Qt::Literals::StringLiterals;
+
+static constexpr QStringView operator""_sv(const char16_t *s, std::size_t n)
+{
+ return QStringView(s, s + n);
+}
+
+namespace
+{
+
+struct KateVersion {
+ int majorRevision;
+ int minorRevision;
+
+ KateVersion(int majorRevision = 0, int minorRevision = 0)
+ : majorRevision(majorRevision)
+ , minorRevision(minorRevision)
+ {
+ }
+
+ bool operator<(const KateVersion &version) const
+ {
+ return majorRevision < version.majorRevision || (majorRevision == version.majorRevision && minorRevision < version.minorRevision);
+ }
+};
+
class HlFilesChecker
{
public:
- template
- void setDefinition(const T &verStr, const QString &filename, const QString &name)
+ void setDefinition(QStringView verStr, const QString &filename, const QString &name, const QStringList &alternativeNames)
{
m_currentDefinition = &*m_definitions.insert(name, Definition{});
m_currentDefinition->languageName = name;
@@ -196,42 +234,78 @@ public:
m_currentKeywords = nullptr;
m_currentContext = nullptr;
- const auto idx = verStr.indexOf(QLatin1Char('.'));
+ const auto idx = verStr.indexOf(u'.');
if (idx <= 0) {
qWarning() << filename << "invalid kateversion" << verStr;
m_success = false;
} else {
- m_currentDefinition->kateVersion = {verStr.left(idx).toInt(), verStr.mid(idx + 1).toInt()};
+ m_currentDefinition->kateVersion = {verStr.sliced(0, idx).toInt(), verStr.sliced(idx + 1).toInt()};
+ }
+
+ auto checkName = [this, &filename](char const *nameType, const QString &name) {
+ auto it = m_names.find(name);
+ if (it != m_names.end()) {
+ qWarning() << filename << "duplicate" << nameType << "with" << it.value();
+ m_success = false;
+ } else {
+ m_names.insert(name, filename);
+ }
+ };
+ checkName("name", name);
+ for (const auto &alternativeName : alternativeNames) {
+ checkName("alternative name", alternativeName);
}
}
- void processElement(QXmlStreamReader &xml)
+ KateVersion currentVersion() const
{
- if (xml.isStartElement()) {
+ return m_currentDefinition->kateVersion;
+ }
+
+ void processElement(const QXmlStreamReader &xml)
+ {
+ switch (xml.tokenType()) {
+ case QXmlStreamReader::StartElement:
if (m_currentContext) {
m_currentContext->rules.push_back(Context::Rule{});
auto &rule = m_currentContext->rules.back();
m_success = rule.parseElement(m_currentDefinition->filename, xml) && m_success;
m_currentContext->hasDynamicRule = m_currentContext->hasDynamicRule || rule.dynamic == XmlBool::True;
} else if (m_currentKeywords) {
- m_success = m_currentKeywords->items.parseElement(m_currentDefinition->filename, xml) && m_success;
- } else if (xml.name() == QStringLiteral("context")) {
+ m_inKeywordItem = true;
+ } else if (xml.name() == u"context"_sv) {
processContextElement(xml);
- } else if (xml.name() == QStringLiteral("list")) {
+ } else if (xml.name() == u"list"_sv) {
processListElement(xml);
- } else if (xml.name() == QStringLiteral("keywords")) {
+ } else if (xml.name() == u"keywords"_sv) {
m_success = m_currentDefinition->parseKeywords(xml) && m_success;
- } else if (xml.name() == QStringLiteral("emptyLine")) {
+ } else if (xml.name() == u"emptyLine"_sv) {
m_success = parseEmptyLine(m_currentDefinition->filename, xml) && m_success;
- } else if (xml.name() == QStringLiteral("itemData")) {
+ } else if (xml.name() == u"itemData"_sv) {
m_success = m_currentDefinition->itemDatas.parseElement(m_currentDefinition->filename, xml) && m_success;
}
- } else if (xml.isEndElement()) {
- if (m_currentContext && xml.name() == QStringLiteral("context")) {
+ break;
+
+ case QXmlStreamReader::EndElement:
+ if (m_currentContext && xml.name() == u"context"_sv) {
m_currentContext = nullptr;
- } else if (m_currentKeywords && xml.name() == QStringLiteral("list")) {
+ } else if (m_currentKeywords && xml.name() == u"list"_sv) {
m_currentKeywords = nullptr;
+ } else if (m_currentKeywords) {
+ m_success = m_currentKeywords->items.parseElement(m_currentDefinition->filename, xml, m_textContent) && m_success;
+ m_textContent.clear();
+ m_inKeywordItem = false;
}
+ break;
+
+ case QXmlStreamReader::EntityReference:
+ case QXmlStreamReader::Characters:
+ if (m_inKeywordItem) {
+ m_textContent += xml.text();
+ }
+ break;
+
+ default:;
}
}
@@ -364,20 +438,20 @@ public:
QString message;
message.reserve(128);
for (auto &ruleAndInclude : std::as_const(unreachableBy)) {
- message += QStringLiteral("line ");
+ message += u"line "_sv;
message += QString::number(ruleAndInclude.rule->line);
- message += QStringLiteral(" [");
+ message += u" ["_sv;
message += ruleAndInclude.rule->parentContext->name;
if (rule->filename != ruleAndInclude.rule->filename) {
- message += QStringLiteral(" (");
+ message += u" ("_sv;
message += ruleAndInclude.rule->filename;
- message += QLatin1Char(')');
+ message += u')';
}
if (ruleAndInclude.includeRules) {
- message += QStringLiteral(" via line ");
+ message += u" via line "_sv;
message += QString::number(ruleAndInclude.includeRules->line);
}
- message += QStringLiteral("], ");
+ message += u"], "_sv;
}
message.chop(2);
@@ -408,13 +482,13 @@ private:
struct Parser {
const QString &filename;
- QXmlStreamReader &xml;
- QXmlStreamAttribute &attr;
+ const QXmlStreamReader &xml;
+ const QXmlStreamAttribute &attr;
bool success;
//! Read a string type attribute, \c success = \c false when \p str is not empty
//! \return \c true when attr.name() == attrName, otherwise false
- bool extractString(QString &str, const QString &attrName)
+ bool extractString(QString &str, QStringView attrName)
{
if (attr.name() != attrName) {
return false;
@@ -431,7 +505,7 @@ private:
//! Read a bool type attribute, \c success = \c false when \p xmlBool is not \c XmlBool::Unspecified.
//! \return \c true when attr.name() == attrName, otherwise false
- bool extractXmlBool(XmlBool &xmlBool, const QString &attrName)
+ bool extractXmlBool(XmlBool &xmlBool, QStringView attrName)
{
if (attr.name() != attrName) {
return false;
@@ -444,7 +518,7 @@ private:
//! Read a positive integer type attribute, \c success = \c false when \p positive is already greater than or equal to 0
//! \return \c true when attr.name() == attrName, otherwise false
- bool extractPositive(int &positive, const QString &attrName)
+ bool extractPositive(int &positive, QStringView attrName)
{
if (attr.name() != attrName) {
return false;
@@ -463,7 +537,7 @@ private:
//! Read a color, \c success = \c false when \p color is already greater than or equal to 0
//! \return \c true when attr.name() == attrName, otherwise false
- bool checkColor(const QString &attrName)
+ bool checkColor(QStringView attrName)
{
if (attr.name() != attrName) {
return false;
@@ -480,7 +554,7 @@ private:
//! Read a QChar, \c success = \c false when \p c is not \c '\0' or does not have one char
//! \return \c true when attr.name() == attrName, otherwise false
- bool extractChar(QChar &c, const QString &attrName)
+ bool extractChar(QChar &c, QStringView attrName)
{
if (attr.name() != attrName) {
return false;
@@ -489,7 +563,7 @@ private:
if (attr.value().size() == 1) {
c = attr.value()[0];
} else {
- c = QLatin1Char('_');
+ c = u'_';
qWarning() << filename << "line" << xml.lineNumber() << attrName << "must contain exactly one char:" << attr.value();
success = false;
}
@@ -529,21 +603,20 @@ private:
QList- keywords;
QSet
- includes;
- bool parseElement(const QString &filename, QXmlStreamReader &xml)
+ bool parseElement(const QString &filename, const QXmlStreamReader &xml, const QString &content)
{
bool success = true;
const int line = xml.lineNumber();
- QString content = xml.readElementText();
if (content.isEmpty()) {
qWarning() << filename << "line" << line << "is empty:" << xml.name();
success = false;
}
- if (xml.name() == QStringLiteral("include")) {
+ if (xml.name() == u"include"_sv) {
includes.insert({content, line});
- } else if (xml.name() == QStringLiteral("item")) {
+ } else if (xml.name() == u"item"_sv) {
keywords.append({content, line});
} else {
qWarning() << filename << "line" << line << "invalid element:" << xml.name();
@@ -558,15 +631,16 @@ private:
Items items;
int line;
- bool parseElement(const QString &filename, QXmlStreamReader &xml)
+ bool parseElement(const QString &filename, const QXmlStreamReader &xml)
{
line = xml.lineNumber();
bool success = true;
- for (auto &attr : xml.attributes()) {
+ const auto attrs = xml.attributes();
+ for (const auto &attr : attrs) {
Parser parser{filename, xml, attr, success};
- const bool isExtracted = parser.extractString(name, QStringLiteral("name"));
+ const bool isExtracted = parser.extractString(name, u"name"_sv);
success = parser.checkIfExtracted(isExtracted);
}
@@ -629,7 +703,7 @@ private:
// Detect2Chars, RangeDetect
QChar char1;
- // AnyChar, DetectChar, StringDetect, RegExpr, WordDetect, keyword
+ // AnyChar, StringDetect, RegExpr, WordDetect, keyword
QString string;
// RegExpr without .* as suffix
QString sanitizedString;
@@ -648,31 +722,31 @@ private:
QString filename;
- bool parseElement(const QString &filename, QXmlStreamReader &xml)
+ bool parseElement(const QString &filename, const QXmlStreamReader &xml)
{
this->filename = filename;
line = xml.lineNumber();
- using Pair = QPair;
+ using Pair = QPair;
static const auto pairs = {
- Pair{QStringLiteral("AnyChar"), Type::AnyChar},
- Pair{QStringLiteral("Detect2Chars"), Type::Detect2Chars},
- Pair{QStringLiteral("DetectChar"), Type::DetectChar},
- Pair{QStringLiteral("DetectIdentifier"), Type::DetectIdentifier},
- Pair{QStringLiteral("DetectSpaces"), Type::DetectSpaces},
- Pair{QStringLiteral("Float"), Type::Float},
- Pair{QStringLiteral("HlCChar"), Type::HlCChar},
- Pair{QStringLiteral("HlCHex"), Type::HlCHex},
- Pair{QStringLiteral("HlCOct"), Type::HlCOct},
- Pair{QStringLiteral("HlCStringChar"), Type::HlCStringChar},
- Pair{QStringLiteral("IncludeRules"), Type::IncludeRules},
- Pair{QStringLiteral("Int"), Type::Int},
- Pair{QStringLiteral("LineContinue"), Type::LineContinue},
- Pair{QStringLiteral("RangeDetect"), Type::RangeDetect},
- Pair{QStringLiteral("RegExpr"), Type::RegExpr},
- Pair{QStringLiteral("StringDetect"), Type::StringDetect},
- Pair{QStringLiteral("WordDetect"), Type::WordDetect},
- Pair{QStringLiteral("keyword"), Type::keyword},
+ Pair{u"AnyChar"_sv, Type::AnyChar},
+ Pair{u"Detect2Chars"_sv, Type::Detect2Chars},
+ Pair{u"DetectChar"_sv, Type::DetectChar},
+ Pair{u"DetectIdentifier"_sv, Type::DetectIdentifier},
+ Pair{u"DetectSpaces"_sv, Type::DetectSpaces},
+ Pair{u"Float"_sv, Type::Float},
+ Pair{u"HlCChar"_sv, Type::HlCChar},
+ Pair{u"HlCHex"_sv, Type::HlCHex},
+ Pair{u"HlCOct"_sv, Type::HlCOct},
+ Pair{u"HlCStringChar"_sv, Type::HlCStringChar},
+ Pair{u"IncludeRules"_sv, Type::IncludeRules},
+ Pair{u"Int"_sv, Type::Int},
+ Pair{u"LineContinue"_sv, Type::LineContinue},
+ Pair{u"RangeDetect"_sv, Type::RangeDetect},
+ Pair{u"RegExpr"_sv, Type::RegExpr},
+ Pair{u"StringDetect"_sv, Type::StringDetect},
+ Pair{u"WordDetect"_sv, Type::WordDetect},
+ Pair{u"keyword", Type::keyword},
};
for (auto pair : pairs) {
@@ -694,7 +768,7 @@ private:
sanitizedString = string;
sanitizedString.replace(allSuffix, QString());
// string is a catch-all, do not sanitize
- if (sanitizedString.isEmpty() || sanitizedString == QStringLiteral("^")) {
+ if (sanitizedString.isEmpty() || sanitizedString == u"^"_sv) {
sanitizedString = string;
}
}
@@ -707,72 +781,73 @@ private:
}
private:
- bool parseAttributes(const QString &filename, QXmlStreamReader &xml)
+ bool parseAttributes(const QString &filename, const QXmlStreamReader &xml)
{
bool success = true;
- for (auto &attr : xml.attributes()) {
+ const auto attrs = xml.attributes();
+ for (const auto &attr : attrs) {
Parser parser{filename, xml, attr, success};
// clang-format off
const bool isExtracted
- = parser.extractString(attribute, QStringLiteral("attribute"))
- || parser.extractString(context.name, QStringLiteral("context"))
- || parser.extractXmlBool(lookAhead, QStringLiteral("lookAhead"))
- || parser.extractXmlBool(firstNonSpace, QStringLiteral("firstNonSpace"))
- || parser.extractString(beginRegion, QStringLiteral("beginRegion"))
- || parser.extractString(endRegion, QStringLiteral("endRegion"))
- || parser.extractPositive(column, QStringLiteral("column"))
+ = parser.extractString(attribute, u"attribute"_sv)
+ || parser.extractString(context.name, u"context"_sv)
+ || parser.extractXmlBool(lookAhead, u"lookAhead"_sv)
+ || parser.extractXmlBool(firstNonSpace, u"firstNonSpace"_sv)
+ || parser.extractString(beginRegion, u"beginRegion"_sv)
+ || parser.extractString(endRegion, u"endRegion"_sv)
+ || parser.extractPositive(column, u"column"_sv)
|| ((type == Type::RegExpr
|| type == Type::StringDetect
|| type == Type::WordDetect
|| type == Type::keyword
- ) && parser.extractXmlBool(insensitive, QStringLiteral("insensitive")))
+ ) && parser.extractXmlBool(insensitive, u"insensitive"_sv))
|| ((type == Type::DetectChar
|| type == Type::RegExpr
|| type == Type::StringDetect
|| type == Type::keyword
- ) && parser.extractXmlBool(dynamic, QStringLiteral("dynamic")))
+ ) && parser.extractXmlBool(dynamic, u"dynamic"_sv))
|| ((type == Type::RegExpr)
- && parser.extractXmlBool(minimal, QStringLiteral("minimal")))
+ && parser.extractXmlBool(minimal, u"minimal"_sv))
|| ((type == Type::DetectChar
|| type == Type::Detect2Chars
|| type == Type::LineContinue
|| type == Type::RangeDetect
- ) && parser.extractChar(char0, QStringLiteral("char")))
+ ) && parser.extractChar(char0, u"char"_sv))
|| ((type == Type::Detect2Chars
|| type == Type::RangeDetect
- ) && parser.extractChar(char1, QStringLiteral("char1")))
+ ) && parser.extractChar(char1, u"char1"_sv))
|| ((type == Type::AnyChar
|| type == Type::RegExpr
|| type == Type::StringDetect
|| type == Type::WordDetect
|| type == Type::keyword
- ) && parser.extractString(string, QStringLiteral("String")))
+ ) && parser.extractString(string, u"String"_sv))
|| ((type == Type::IncludeRules)
- && parser.extractXmlBool(includeAttrib, QStringLiteral("includeAttrib")))
+ && parser.extractXmlBool(includeAttrib, u"includeAttrib"_sv))
|| ((type == Type::Float
|| type == Type::HlCHex
|| type == Type::HlCOct
|| type == Type::Int
|| type == Type::keyword
|| type == Type::WordDetect
- ) && (parser.extractString(additionalDeliminator, QStringLiteral("additionalDeliminator"))
- || parser.extractString(weakDeliminator, QStringLiteral("weakDeliminator"))))
+ ) && (parser.extractString(additionalDeliminator, u"additionalDeliminator"_sv)
+ || parser.extractString(weakDeliminator, u"weakDeliminator"_sv)))
;
// clang-format on
success = parser.checkIfExtracted(isExtracted);
+ }
- if (type == Type::LineContinue && char0 == QLatin1Char('\0')) {
- char0 = QLatin1Char('\\');
- }
+ if (type == Type::LineContinue && char0 == u'\0') {
+ char0 = u'\\';
}
return success;
}
- bool checkMandoryAttributes(const QString &filename, QXmlStreamReader &xml)
+ bool checkMandoryAttributes(const QString &filename, const QXmlStreamReader &xml)
{
QString missingAttr;
@@ -841,26 +916,27 @@ private:
XmlBool fallthrough{};
XmlBool stopEmptyLineContextSwitchLoop{};
- bool parseElement(const QString &filename, QXmlStreamReader &xml)
+ bool parseElement(const QString &filename, const QXmlStreamReader &xml)
{
line = xml.lineNumber();
bool success = true;
- for (auto &attr : xml.attributes()) {
+ const auto attrs = xml.attributes();
+ for (const auto &attr : attrs) {
Parser parser{filename, xml, attr, success};
XmlBool noIndentationBasedFolding{};
// clang-format off
- const bool isExtracted = parser.extractString(name, QStringLiteral("name"))
- || parser.extractString(attribute, QStringLiteral("attribute"))
- || parser.extractString(lineEndContext.name, QStringLiteral("lineEndContext"))
- || parser.extractString(lineEmptyContext.name, QStringLiteral("lineEmptyContext"))
- || parser.extractString(fallthroughContext.name, QStringLiteral("fallthroughContext"))
- || parser.extractXmlBool(dynamic, QStringLiteral("dynamic"))
- || parser.extractXmlBool(fallthrough, QStringLiteral("fallthrough"))
- || parser.extractXmlBool(stopEmptyLineContextSwitchLoop, QStringLiteral("stopEmptyLineContextSwitchLoop"))
- || parser.extractXmlBool(noIndentationBasedFolding, QStringLiteral("noIndentationBasedFolding"));
+ const bool isExtracted = parser.extractString(name, u"name"_sv)
+ || parser.extractString(attribute, u"attribute"_sv)
+ || parser.extractString(lineEndContext.name, u"lineEndContext"_sv)
+ || parser.extractString(lineEmptyContext.name, u"lineEmptyContext"_sv)
+ || parser.extractString(fallthroughContext.name, u"fallthroughContext"_sv)
+ || parser.extractXmlBool(dynamic, u"dynamic"_sv)
+ || parser.extractXmlBool(fallthrough, u"fallthrough"_sv)
+ || parser.extractXmlBool(stopEmptyLineContextSwitchLoop, u"stopEmptyLineContextSwitchLoop"_sv)
+ || parser.extractXmlBool(noIndentationBasedFolding, u"noIndentationBasedFolding"_sv);
// clang-format on
success = parser.checkIfExtracted(isExtracted);
@@ -880,22 +956,6 @@ private:
}
};
- struct Version {
- int majorRevision;
- int minorRevision;
-
- Version(int majorRevision = 0, int minorRevision = 0)
- : majorRevision(majorRevision)
- , minorRevision(minorRevision)
- {
- }
-
- bool operator<(const Version &version) const
- {
- return majorRevision < version.majorRevision || (majorRevision == version.majorRevision && minorRevision < version.minorRevision);
- }
- };
-
struct ItemDatas {
struct Style {
QString name;
@@ -914,7 +974,7 @@ private:
QSet