diff --git a/dist/changelog/changes-13.0.0.md b/dist/changelog/changes-13.0.0.md index 70f91721719..4c78d386e6d 100644 --- a/dist/changelog/changes-13.0.0.md +++ b/dist/changelog/changes-13.0.0.md @@ -10,22 +10,21 @@ the public Git repository. For example: git clone git://code.qt.io/qt-creator/qt-creator.git git log --cherry-pick --pretty=oneline origin/12.0..v13.0.0 -What's new? +New plugins ----------- -* Added Qt Application Manager support - ### Qt Application Manager Adds support for Qt 6 based applications with CMake for creating, building, deploying, running, and debugging for devices that use the [Qt Application Manager](https://doc.qt.io/QtApplicationManager/). -([Documentation](https://doc-snapshots.qt.io/qtcreator-13.0/creator-how-to-run-in-app-manager.html)) +([Documentation](https://doc.qt.io/qtcreator/creator-how-to-run-in-app-manager.html)) General ------- +* Updated the visual style of Welcome mode * Improved docking (Debug mode, Widget Designer) * Fixed the style of titles and changed them to always be visible (removed `View > Views > Automatically Hide View Titlebars`) @@ -41,19 +40,29 @@ General ([QTCREATORBUG-29886](https://bugreports.qt.io/browse/QTCREATORBUG-29886)) * Fixed issues with the window actions ([QTCREATORBUG-30381](https://bugreports.qt.io/browse/QTCREATORBUG-30381)) +* Fixed drag & drop for external tools + ([QTCREATORBUG-30469](https://bugreports.qt.io/browse/QTCREATORBUG-30469)) * Known Issues * Installers provided by The Qt Company mostly display English text, not the system's language ([QTIFW-3310](https://bugreports.qt.io/browse/QTIFW-3310)) +Help +---- + +* Fixed that non-Qt related help files could automatically be registered +* Fixed that the option `Highest Version Only` for automatically registering Qt + documentation did not work for the Qt Online Installer + Editing ------- -* Made syntax highlighting asynchronous * Fixed that `Shift+Tab` did not always unindent ([QTCREATORBUG-29742](https://bugreports.qt.io/browse/QTCREATORBUG-29742)) * Fixed that `Surround text selection with brackets` did nothing for `<` * Fixed following links without a file name in documents without a file name +* Fixed that device tree source files (`.dts`) were opened in the binary editor + ([QTCREATORBUG-19029](https://bugreports.qt.io/browse/QTCREATORBUG-19029)) ### C++ @@ -69,7 +78,7 @@ Editing ([QTCREATORBUG-21826](https://bugreports.qt.io/browse/QTCREATORBUG-21826)) * Improved the coding style settings by separating Clang Format and other coding style settings, and using a plain text editor for custom Clang Format settings - ([Documentation](https://doc-snapshots.qt.io/qtcreator-13.0/creator-preferences-cpp-code-style.html)) + ([Documentation](https://doc.qt.io/qtcreator/creator-preferences-cpp-code-style.html)) * Fixed that the class wizards used the class name for the include guard instead of the file name ([QTCREATORBUG-30140](https://bugreports.qt.io/browse/QTCREATORBUG-30140)) @@ -82,6 +91,9 @@ Editing template class in a namespace ([QTCREATORBUG-22076](https://bugreports.qt.io/browse/QTCREATORBUG-22076)) * Clangd + * Improved the function hint tool tip + ([QTCREATORBUG-26346](https://bugreports.qt.io/browse/QTCREATORBUG-26346), + [QTCREATORBUG-30489](https://bugreports.qt.io/browse/QTCREATORBUG-30489)) * Fixed that `Follow Symbol Under Cursor` only worked for exact matches ([QTCREATORBUG-29814](https://bugreports.qt.io/browse/QTCREATORBUG-29814)) * Fixed the version check for remote `clangd` executables @@ -105,7 +117,7 @@ Editing * Added automatic setup up of language servers for `YAML`, `JSON`, and `Bash` (requires `npm`) - ([Documentation](https://doc-snapshots.qt.io/qtcreator-13.0/creator-language-servers.html#adding-language-servers)) + ([Documentation](https://doc.qt.io/qtcreator/creator-language-servers.html#adding-language-servers)) ### Widget Designer @@ -127,13 +139,18 @@ endings) to the tool bar * Fixed issues with large addresses +### Models + +* Fixed a crash when selecting items + ([QTCREATORBUG-30413](https://bugreports.qt.io/browse/QTCREATORBUG-30413)) + Projects -------- * Added a section `Vanished Targets` to `Projects` mode in case the project was configured for kits that have vanished, as a replacement for the automatic creation of "Replacement" kits - ([Documentation](https://doc-snapshots.qt.io/qtcreator-13.0/creator-how-to-activate-kits.html#copy-custom-settings-from-vanished-targets)) + ([Documentation](https://doc.qt.io/qtcreator/creator-how-to-activate-kits.html#copy-custom-settings-from-vanished-targets)) * Added the status of devices to the device lists ([QTCREATORBUG-20941](https://bugreports.qt.io/browse/QTCREATORBUG-20941)) * Added the `Preferences > Build & Run > General > Application environment` @@ -157,6 +174,14 @@ Projects * Added support for custom output parsers for the configuration of projects ([QTCREATORBUG-29992](https://bugreports.qt.io/browse/QTCREATORBUG-29992)) * Made cache variables available even if project configuration failed +* Fixed that too many paths were added to the build library search path + ([QTCREATORBUG-29662](https://bugreports.qt.io/browse/QTCREATORBUG-29662)) +* Fixed that searching in the project included results from module files + not in the project + ([QTCREATORBUG-30372](https://bugreports.qt.io/browse/QTCREATORBUG-30372)) +* Fixed that `Follow Symbol` on `add_subdirectory` could jump to a target of + the same name + ([QTCREATORBUG-30510](https://bugreports.qt.io/browse/QTCREATORBUG-30510)) * CMake Presets * Fixed `Reload CMake Presets` if the project was not configured yet ([QTCREATORBUG-30238](https://bugreports.qt.io/browse/QTCREATORBUG-30238)) @@ -166,6 +191,10 @@ Projects ([QTCREATORBUG-30236](https://bugreports.qt.io/browse/QTCREATORBUG-30236)) * Fixed a freeze with nested presets ([QTCREATORBUG-30288](https://bugreports.qt.io/browse/QTCREATORBUG-30288)) + * Fixed a wrong error message + ([QTCREATORBUG-30373](https://bugreports.qt.io/browse/QTCREATORBUG-30373)) + * Fixed a crash when no CMake tool is found + ([QTCREATORBUG-30505](https://bugreports.qt.io/browse/QTCREATORBUG-30505)) * Conan * Fixed that backslashes were wrongly used for paths on Windows ([QTCREATORBUG-30326](https://bugreports.qt.io/browse/QTCREATORBUG-30326)) @@ -184,7 +213,7 @@ Projects * Fixed that the same Python interpreter could be auto-detected multiple times under different names - ([Documentation](https://doc-snapshots.qt.io/qtcreator-13.0/creator-python-development.html)) + ([Documentation](https://doc.qt.io/qtcreator/creator-python-development.html)) Debugging --------- @@ -200,6 +229,13 @@ Debugging * Fixed that breakpoints were not hit while the message dialog about missing debug information was shown ([QTCREATORBUG-30168](https://bugreports.qt.io/browse/QTCREATORBUG-30168)) +* LLDB + * Fixed setting breakpoints in assembler + * Fixed `Run as root` + ([QTCREATORBUG-30516](https://bugreports.qt.io/browse/QTCREATORBUG-30516)) +* CDB + * Fixed a missing debugger tool tip + ([QTCREATORBUG-13413](https://bugreports.qt.io/browse/QTCREATORBUG-13413)) ### Debug Adapter Protocol @@ -215,7 +251,8 @@ Analyzer ### Axivion -* Added fetching and showing issues +* Added a view for listing and searching issues +* Added other issue types than `Style Violations` to the editor annotations Terminal -------- @@ -228,6 +265,7 @@ Terminal * Fixed that `Ctrl+W` closed the terminal even when shortcuts were blocked ([QTCREATORBUG-30070](https://bugreports.qt.io/browse/QTCREATORBUG-30070)) * Fixed issues with Windows Powershell +* Fixed issues with copying Japanese text Version Control Systems ----------------------- @@ -245,6 +283,11 @@ Test Integration * Added a locator filter for Qt Test data tags (`qdt`) +### Catch2 + +* Added support for namespaced fixtures +* Added support for `SCENARIO_METHOD` + Platforms --------- @@ -255,8 +298,13 @@ Platforms ### Android -* Add support for target-based android-build directories (??? is that ready? Qt 6.8+ ???) +* Add support for target-based android-build directories ([QTBUG-117443](https://bugreports.qt.io/browse/QTBUG-117443)) +* Fixed issues with debugging + ([QTCREATORBUG-29928](https://bugreports.qt.io/browse/QTCREATORBUG-29928), + [QTCREATORBUG-30405](https://bugreports.qt.io/browse/QTCREATORBUG-30405)) +* Fixed a crash when removing Android Qt versions + ([QTCREATORBUG-30347](https://bugreports.qt.io/browse/QTCREATORBUG-30347)) ### iOS @@ -264,13 +312,18 @@ Platforms * Fixed deployment and running applications for iOS 17 devices (application output, debugging, and profiling are not supported) ([QTCREATORBUG-29682](https://bugreports.qt.io/browse/QTCREATORBUG-29682)) - ([Documentation](https://doc-snapshots.qt.io/qtcreator-13.0/creator-developing-ios.html)) + ([Documentation](https://doc.qt.io/qtcreator/creator-developing-ios.html)) ### Remote Linux * Fixed that debugging unnecessarily downloaded files from the remote system ([QTCREATORBUG-29614](https://bugreports.qt.io/browse/QTCREATORBUG-29614)) +### MCU + +* Fixed a crash when fixing errors in MCU kits + ([QTCREATORBUG-30360](https://bugreports.qt.io/browse/QTCREATORBUG-30360)) + Credits for these changes go to: -------------------------------- Aaron McCarthy diff --git a/doc/qtcreator/config/style/qt5-sidebar.html b/doc/qtcreator/config/style/qt5-sidebar.html index c5ecac11af4..509808af114 100644 --- a/doc/qtcreator/config/style/qt5-sidebar.html +++ b/doc/qtcreator/config/style/qt5-sidebar.html @@ -5,13 +5,20 @@
-

Getting Started

+

Developing with Qt Creator

@@ -27,33 +34,13 @@
  • Creating a Qt Quick Application
  • Creating a Qt Widget Based Application
  • Creating a Qt for Python Application with Qt Quick
  • -
  • Creating a Qt for Python Application with Qt Widgets
  • +
  • Creating a Qt for Python Application with Qt Widgets
  • Debugging a C++ Application
  • Debugging a Qt Quick Application
  • See All
  • -
    -
    -

    Running on Devices

    -
    - -
    -
    -
    -

    Debugging and Analyzing

    -
    - -

    How To

    diff --git a/doc/qtcreator/images/front-projects.png b/doc/qtcreator/images/front-projects.png deleted file mode 100644 index bd3412e8489..00000000000 Binary files a/doc/qtcreator/images/front-projects.png and /dev/null differ diff --git a/doc/qtcreator/images/front-publishing.png b/doc/qtcreator/images/front-publishing.png deleted file mode 100644 index 9946aa36cd3..00000000000 Binary files a/doc/qtcreator/images/front-publishing.png and /dev/null differ diff --git a/doc/qtcreator/images/front-testing.png b/doc/qtcreator/images/front-testing.png deleted file mode 100644 index 69b1fe45d56..00000000000 Binary files a/doc/qtcreator/images/front-testing.png and /dev/null differ diff --git a/doc/qtcreator/images/numbers/01.png b/doc/qtcreator/images/numbers/01.png index d73ab969bbd..4c8b10b26c5 100644 Binary files a/doc/qtcreator/images/numbers/01.png and b/doc/qtcreator/images/numbers/01.png differ diff --git a/doc/qtcreator/images/numbers/02.png b/doc/qtcreator/images/numbers/02.png index d0b4cfafe9a..df24ef459e6 100644 Binary files a/doc/qtcreator/images/numbers/02.png and b/doc/qtcreator/images/numbers/02.png differ diff --git a/doc/qtcreator/images/numbers/03.png b/doc/qtcreator/images/numbers/03.png index 752373f9188..525bd926990 100644 Binary files a/doc/qtcreator/images/numbers/03.png and b/doc/qtcreator/images/numbers/03.png differ diff --git a/doc/qtcreator/images/numbers/04.png b/doc/qtcreator/images/numbers/04.png index 08fe1b8209b..6c6b489d5c9 100644 Binary files a/doc/qtcreator/images/numbers/04.png and b/doc/qtcreator/images/numbers/04.png differ diff --git a/doc/qtcreator/images/numbers/05.png b/doc/qtcreator/images/numbers/05.png index 186dd97519a..6d831b204de 100644 Binary files a/doc/qtcreator/images/numbers/05.png and b/doc/qtcreator/images/numbers/05.png differ diff --git a/doc/qtcreator/images/numbers/06.png b/doc/qtcreator/images/numbers/06.png index f9454a7467b..b7adb30f960 100644 Binary files a/doc/qtcreator/images/numbers/06.png and b/doc/qtcreator/images/numbers/06.png differ diff --git a/doc/qtcreator/images/numbers/07.png b/doc/qtcreator/images/numbers/07.png index 0f18d811ce6..a160038f0eb 100644 Binary files a/doc/qtcreator/images/numbers/07.png and b/doc/qtcreator/images/numbers/07.png differ diff --git a/doc/qtcreator/images/numbers/08.png b/doc/qtcreator/images/numbers/08.png index 463f770167d..6ccf88b7eb8 100644 Binary files a/doc/qtcreator/images/numbers/08.png and b/doc/qtcreator/images/numbers/08.png differ diff --git a/doc/qtcreator/images/numbers/09.png b/doc/qtcreator/images/numbers/09.png index 823c5c0dba0..0ed195b154a 100644 Binary files a/doc/qtcreator/images/numbers/09.png and b/doc/qtcreator/images/numbers/09.png differ diff --git a/doc/qtcreator/images/numbers/10.png b/doc/qtcreator/images/numbers/10.png index d689be3fac1..8c468d99989 100644 Binary files a/doc/qtcreator/images/numbers/10.png and b/doc/qtcreator/images/numbers/10.png differ diff --git a/doc/qtcreator/images/qtcreator-breakdown.png b/doc/qtcreator/images/qtcreator-breakdown.png index 314031b47c6..a226f9f2542 100644 Binary files a/doc/qtcreator/images/qtcreator-breakdown.png and b/doc/qtcreator/images/qtcreator-breakdown.png differ diff --git a/doc/qtcreator/images/qtcreator-editor-toolbar.webp b/doc/qtcreator/images/qtcreator-editor-toolbar.webp index 4158934e48c..b7dbfe23d7c 100644 Binary files a/doc/qtcreator/images/qtcreator-editor-toolbar.webp and b/doc/qtcreator/images/qtcreator-editor-toolbar.webp differ diff --git a/doc/qtcreator/images/qtcreator-examples-open.webp b/doc/qtcreator/images/qtcreator-examples-open.webp index 81a148ccab8..da1d0c07e20 100644 Binary files a/doc/qtcreator/images/qtcreator-examples-open.webp and b/doc/qtcreator/images/qtcreator-examples-open.webp differ diff --git a/doc/qtcreator/src/analyze/creator-analyze.qdoc b/doc/qtcreator/src/analyze/creator-analyze.qdoc index a29ab100155..f57d97b8c02 100644 --- a/doc/qtcreator/src/analyze/creator-analyze.qdoc +++ b/doc/qtcreator/src/analyze/creator-analyze.qdoc @@ -14,11 +14,11 @@ \title Analyzing Code - You can use the code analysis tools in the \uicontrol Debug mode. To - switch to \uicontrol Debug mode, select \uicontrol Debug in the mode - selector, or select the \uicontrol {Analyze} menu and then select a tool. + To use a code analysis tool, select it in the \uicontrol {Analyze Menu} or + in the pull-down menu of the \inlineimage icons/qtcreator-debug-button.png + (\uicontrol {Start Debugging of Startup Project}) button. When you are in the \uicontrol Debug mode, you can switch between tools by - selecting them in the menu on the toolbar. + selecting them in the menu on the debugger toolbar. You can drag and drop the views in the \uicontrol Debug mode to new positions on the screen. The size and position of views are saved for future diff --git a/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc b/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc index 1910f0f62dd..6c4b7d8ef09 100644 --- a/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc +++ b/doc/qtcreator/src/cmake/creator-projects-cmake.qdoc @@ -310,13 +310,13 @@ \title Manage files in CMake projects - When you use project wizard templates to \l{Create files}{add files} to + When you \l{Create files}{add new or existing files} to a project, \QC automatically adds them to the \l {qt_add_executable}, \l{CMake: add_executable command}{add_executable}, or \l {qt_add_library} function in the CMakeLists.txt file. - If you use custom API, \QC uses the \l{CMake: target_sources command} - {target_sources} function to add the files. + If \QC cannot recognize where the target is created, it will use the + \l{CMake: target_sources command} {target_sources} function to add the files. For Qt Quick projects, the files are added to the \l {qt_add_qml_module} function, prefixed with the \c QML_FILES, \c SOURCES, or \c RESOURCES diff --git a/doc/qtcreator/src/editors/creator-code-syntax.qdoc b/doc/qtcreator/src/editors/creator-code-syntax.qdoc index aa5e01f125e..f20ecadb8e5 100644 --- a/doc/qtcreator/src/editors/creator-code-syntax.qdoc +++ b/doc/qtcreator/src/editors/creator-code-syntax.qdoc @@ -103,7 +103,7 @@ \previouspage creator-reference.html \endif - \ingroup creator-reference-editors + \ingroup creator-reference-analyzer \ingroup studio-how-to-code \title JavaScript and QML Checks diff --git a/doc/qtcreator/src/editors/creator-only/creator-clang-codemodel.qdoc b/doc/qtcreator/src/editors/creator-only/creator-clang-codemodel.qdoc index 99bad72d100..f07a79e9868 100644 --- a/doc/qtcreator/src/editors/creator-only/creator-clang-codemodel.qdoc +++ b/doc/qtcreator/src/editors/creator-only/creator-clang-codemodel.qdoc @@ -11,7 +11,7 @@ \page creator-clang-codemodel.html \previouspage creator-reference.html - \ingroup creator-reference + \ingroup creator-reference-editors \title Clang Code Model diff --git a/doc/qtcreator/src/editors/creator-only/creator-cpp-quick-fixes.qdoc b/doc/qtcreator/src/editors/creator-only/creator-cpp-quick-fixes.qdoc index 44cc63bbf60..b3bab5c7feb 100644 --- a/doc/qtcreator/src/editors/creator-only/creator-cpp-quick-fixes.qdoc +++ b/doc/qtcreator/src/editors/creator-only/creator-cpp-quick-fixes.qdoc @@ -78,7 +78,7 @@ \page creator-reference-cpp-quick-fixes.html \previouspage creator-reference.html - \ingroup creator-reference + \ingroup creator-reference-editors \title C++ Quick Fixes diff --git a/doc/qtcreator/src/editors/creator-only/creator-fakevim.qdoc b/doc/qtcreator/src/editors/creator-only/creator-fakevim.qdoc index 63295aa1145..db152c0e1dd 100644 --- a/doc/qtcreator/src/editors/creator-only/creator-fakevim.qdoc +++ b/doc/qtcreator/src/editors/creator-only/creator-fakevim.qdoc @@ -31,7 +31,7 @@ \page creator-editor-fakevim.html \previouspage creator-reference.html - \ingroup creator-reference + \ingroup creator-reference-editors \title FakeVim Modes and Commands diff --git a/doc/qtcreator/src/editors/creator-only/creator-locator.qdoc b/doc/qtcreator/src/editors/creator-only/creator-locator.qdoc index af9f3a3d828..eab661647fd 100644 --- a/doc/qtcreator/src/editors/creator-only/creator-locator.qdoc +++ b/doc/qtcreator/src/editors/creator-only/creator-locator.qdoc @@ -38,11 +38,11 @@ \section1 Use locator filters - The filters that are available depend on the file type. For more information - about what a particular locator filter does, see the tooltips that appear - when you hover over a filter in the locator. For longer descriptions of the - filters, select \inlineimage icons/magnifier.png > \uicontrol Configure to - open the \l{Locator} preferences. + The filters that are available depend on the current document and project. + If the locator field is empty, a list of available filters is shown. + A list of filters is also shown when selecting \inlineimage icons/magnifier.png. + For more information about what a particular locator filter does, see the + tooltips that appear when you hover over a filter. To use a locator filter: @@ -52,7 +52,7 @@ string (for example, a filename or class name) or the command to execute. - \li Double-click a locator filter in the filter list to use it. Press + \li Select a locator filter in the filter list to use it. Press the up and down arrow keys or press \key Ctrl+P and \key Ctrl+N to move up and down the list, and then press \key Enter to use the selected filter. @@ -140,7 +140,8 @@ \brief Add and change locator filters. To set locator preferences, go to \preferences > \uicontrol Environment > - \uicontrol Locator. + \uicontrol Locator, or select + \inlineimage icons/magnifier.png > \uicontrol Configure in the locator field. \image qtcreator-locator-customize.webp {Locator preferences} diff --git a/doc/qtcreator/src/editors/creator-only/creator-modeling.qdoc b/doc/qtcreator/src/editors/creator-only/creator-modeling.qdoc index d42cbc4d35b..426cc25d67c 100644 --- a/doc/qtcreator/src/editors/creator-only/creator-modeling.qdoc +++ b/doc/qtcreator/src/editors/creator-only/creator-modeling.qdoc @@ -11,11 +11,11 @@ \page creator-modeling.html \previouspage creator-reference.html - \ingroup creator-reference + \ingroup creator-reference-editors \title Model Editor - \brief Editor for Universal Modeling Language (UML) style models with + \brief Create Universal Modeling Language (UML) style models with structured and behavioral diagrams. Use the model editor to create Universal Modeling Language (UML) diff --git a/doc/qtcreator/src/editors/creator-only/creator-scxml.qdoc b/doc/qtcreator/src/editors/creator-only/creator-scxml.qdoc index eac59c47407..80ffbe8ab2b 100644 --- a/doc/qtcreator/src/editors/creator-only/creator-scxml.qdoc +++ b/doc/qtcreator/src/editors/creator-only/creator-scxml.qdoc @@ -11,11 +11,11 @@ \page creator-scxml.html \previouspage creator-reference.html - \ingroup creator-reference + \ingroup creator-reference-editors \title SCXML Editor - \brief State chart (.scxml) editor. + \brief Edit state chart (.scxml) files. State charts are a graphical way of modeling how a system reacts to stimuli. They define the \e states that the system can diff --git a/doc/qtcreator/src/editors/creator-quick-fixes.qdoc b/doc/qtcreator/src/editors/creator-quick-fixes.qdoc index 964b8134807..7e02f60c650 100644 --- a/doc/qtcreator/src/editors/creator-quick-fixes.qdoc +++ b/doc/qtcreator/src/editors/creator-quick-fixes.qdoc @@ -106,7 +106,7 @@ \endif \ingroup creator-reference-editors - \ingroup studio-how-to-refactor-code + \ingroup studio-code-view \title QML Quick Fixes diff --git a/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc b/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc index 11adddb54db..1b545943e3e 100644 --- a/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc +++ b/doc/qtcreator/src/howto/creator-only/creator-how-tos.qdoc @@ -18,8 +18,8 @@ \section1 Analyze - \QC integrates code analysis tools for detecting memory leaks, profiling - function execution, analyzing CPU use, and eliminating unnecessary + Use integrated code analysis tools to detect memory leaks, profile + function execution, analyze CPU use, and eliminate unnecessary complexity of code. Other integrated tools provide code coverage and visualize trace events. @@ -27,36 +27,66 @@ \section1 Build and Run + Use integrated cross-platform systems for build automation to compile your + source code for different target platforms or with different compilers, + debuggers, or Qt versions. Deploy applications to the target platforms + and run them there. + \generatelist creator-how-to-build \section2 Build with CMake + CMake controls the software compilation process by using simple configuration + files, called \e CMakeLists.txt files. + \generatelist creator-how-to-build-with-cmake \section2 Build with qmake + qmake automates the generation of Makefiles based on the information in a + project file that has the extension \e .pro. + \generatelist creator-how-to-build-with-qmake \section2 Run applications + Run applications on local and remote desktop systems, as well as on + embedded and mobile devices that you connect to the computer. + \generatelist creator-how-to-run \section1 Create Models and Diagrams + Create Universal Modeling Language (UML) style models with structured and + behavioral diagrams that offer different views to your system. Or, use a + file wizard to create State Chart XML (SCXML) files with boilerplate code + and edit them with an SCXML editor. + \generatelist creator-how-to-models \section1 Debug + Use native debuggers to inspect the state of your application while + debugging. + \generatelist creator-how-to-debug \section1 Design UIs + Design UIs with either \l{User Interfaces}{Qt Quick or Qt Widgets}. + \QC integrates a visual editor, \QD, for designing widget-based UIs + in the \uicontrol Design mode. For Qt Quick UIs, use a separate visual + editor, \l{\QDS Manual}{\QDS}, or the \uicontrol Edit mode. + \generatelist creator-how-to-design \section1 Edit Code - The code editor offers useful features, such as semantic highlighting, - checking code syntax, code completion, and refactoring actions. + The code editor offers useful features for editing C++ and QML code, such + as semantic highlighting, checking code syntax, code completion, and quick + fixes. Some of these features are also for other programming languages, such + as Python, for which a \e {language server} is available that provides + information about the code to IDEs. \generatelist creator-how-to-edit @@ -69,39 +99,64 @@ \section2 Manage Language Servers + Configure language servers that \QC adds by default or add more of them. + \generatelist creator-how-to-lsp \section2 Search + Use the incremental and advanced search to search in currently open projects + or files on the file system or use the locator to browse through projects, + files, classes, functions, documentation, and file systems. + \generatelist creator-how-to-search \section1 Manage Kits + \QC groups build and run specific settings as kits to make cross-platform + development easier. Each kit consists of a set of values that define one + environment, such as a device, tool chain, Qt version, and debugger command + to use. + \generatelist creator-how-to-manage-kits \section1 Manage Projects + Create projects for developing applications and libraries. Then configure + the projects for building and running the applications on target platforms. + \generatelist creator-how-to-projects \section2 Create Projects + Use preset wizards to create projects or add custom wizards. You can also + import projects from version control systems. + \generatelist creator-how-to-projects-create \section2 Add Files + Add files to projects. + \generatelist creator-how-to-projects-files \section2 Configure Projects + Change the default configurations that installation programs and project + wizards create. + \generatelist creator-how-to-projects-configure \section1 Read Documentation + \QC integrates the reference documentation for the Qt versions that you + install. You can add documentation from other sources. + \generatelist creator-how-to-get-help \section1 Test - \QC supports both \e {code based tests} and \e {build system based tests}. + Create and run \e {code based tests} and \e {build system based tests}. Code based testing offers special handling for particular testing frameworks that strongly ties to the underlying code models or specialized parsers. Build system based testing is independent from any @@ -113,10 +168,15 @@ \section1 Use \QC + Use basic \QC features and preinstalled plugins. Install more plugins and + configure external tools for use. + \generatelist creator-how-to-use \section1 Use the UI + Navigate the UI or change its appearance and behavior. + \generatelist creator-how-to-ui */ diff --git a/doc/qtcreator/src/linux-mobile/creator-embedded-platforms.qdoc b/doc/qtcreator/src/linux-mobile/creator-embedded-platforms.qdoc index 261fad18125..39ff44f1121 100644 --- a/doc/qtcreator/src/linux-mobile/creator-embedded-platforms.qdoc +++ b/doc/qtcreator/src/linux-mobile/creator-embedded-platforms.qdoc @@ -72,6 +72,7 @@ for remote Linux devices: \list + \li \l{Adding Docker Devices} \li \l{Connecting Remote Linux Devices} \li \l{Deploying to Remote Linux} \li \l{Remote Linux Run Settings} diff --git a/doc/qtcreator/src/overview/creator-only/creator-configuring.qdoc b/doc/qtcreator/src/overview/creator-only/creator-configuring.qdoc index 85dd8f84adf..1a1c04edfe1 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-configuring.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-configuring.qdoc @@ -89,8 +89,8 @@ Themes enable you to customize the appearance of the \QC UI: widgets, colors, and icons. - To switch themes, select \preferences > \uicontrol Environment, and then - select a theme in the \uicontrol Theme field. + To switch themes, select \preferences > \uicontrol Environment > + \uicontrol Interface, and then select a theme in the \uicontrol Theme field. You can use the \QC text and code editors with your favorite color scheme that defines how to highlight code elements and which background color to diff --git a/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc b/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc index 115e666d0b9..b1531ae6857 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-getting-started.qdoc @@ -25,11 +25,11 @@ \li \inlineimage front-ui.png \li \inlineimage front-advanced.png \row - \li \b {\l{Overview}} + \li \b {\l{Developing with \QC}} If you have not used an integrated development environment (IDE) before, or want to know what kind of IDE \QC is, go to - \l{Overview}. + \l{Developing with \QC}. \li \b {\l{User Interface}} If you have not used \QC before, and want to become familiar diff --git a/doc/qtcreator/src/overview/creator-only/creator-keyboard-shortcuts.qdoc b/doc/qtcreator/src/overview/creator-only/creator-keyboard-shortcuts.qdoc index b5bd198bee8..1dc1fb0d6b1 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-keyboard-shortcuts.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-keyboard-shortcuts.qdoc @@ -18,25 +18,25 @@ \brief Default keyboard shortcuts. \QC has various keyboard shortcuts that speed up your development process. - To view all \QC functions in and their keyboard shortcuts, select + To view all \QC functions and their keyboard shortcuts, select \preferences > \uicontrol Environment > \uicontrol Keyboard. \image qtcreator-keyboard-shortcuts.png - The shortcuts that are displayed in red color are associated with several - functions. \QC executes the function that is available in the current - context. If several functions are available for the same shortcut at a - time, there is a conflict and \QC cannot execute any function. + Shortcuts that are displayed in red are associated with several functions. + \QC executes the function that is available in the current context. + If several functions are available for the same shortcut in the current context, + \QC will not execute any function due to the conflict. - A keyboard shortcut might also conflict with a shortcut that a window - manager uses for its own purposes. In that case, \QC shortcuts do not work. + A keyboard shortcut might also conflict with a shortcut that your window + manager uses for its own purposes. If the window manager consumes the key event, + the \QC shortcut will not be activated. Typically, you can configure the shortcuts in the window manager, but if that is not allowed, you can change the \QC shortcuts. - For example, Unity on - Ubuntu 11.10 uses \key F10 in its window manager, and therefore the default - \QC keyboard shortcut \key F10 (Step Over) does not work on that system. - + For example, Unity on Ubuntu 11.10 by default uses \key F10 in its window manager, + and therefore the default \QC keyboard shortcut \key F10 (Step Over) will not work on + that system. To override the platform default value that determines whether keyboard shortcuts are shown in the labels of context menu items, diff --git a/doc/qtcreator/src/overview/creator-only/creator-mobile-targets.qdoc b/doc/qtcreator/src/overview/creator-only/creator-mobile-targets.qdoc index 3c25ce4eab0..fc33900659b 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-mobile-targets.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-mobile-targets.qdoc @@ -52,8 +52,8 @@ \li \l {Adding Docker Devices} - You can add Docker images as \e devices to run, debug, and analyze - applications built for Docker containers from \QC. + Create Docker devices from Docker images and use them to build, run, + and debug applications from \QC. \li \l{Connecting iOS Devices} diff --git a/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc b/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc index 675b8884c69..b164224e848 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-overview.qdoc @@ -8,11 +8,11 @@ // ********************************************************************** /*! - \previouspage creator-getting-started.html + \previouspage index.html \page creator-overview.html - \nextpage creator-quick-tour.html + \nextpage creator-getting-started.html - \title Overview + \title Developing with \QC \QC is a cross-platform, complete integrated development environment (IDE) that you can use to create applications for desktop, embedded, @@ -235,6 +235,11 @@ a suitable native debugger for each kit from the ones it finds on the computer. Edit the kits to override this choice. + If you install \QC with \QOI, the GNU Symbolic Debugger is installed + automatically and you should be ready to start debugging after you create + a new project. However, you can change the setup to use debugging tools for + Windows, for example. + Connect devices to your computer to debug processes running on the devices. For more information, see \l{Debugging}. diff --git a/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc b/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc index 1fe8e41e287..45432f561bd 100644 --- a/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc +++ b/doc/qtcreator/src/overview/creator-only/creator-reference.qdoc @@ -4,16 +4,25 @@ /*! \page creator-reference.html \previouspage creator-how-tos.html - \nextpage creator-known-issues.html + \nextpage creator-acknowledgements.html \title Reference + The following topics contain reference information about using \QC and the + integrated tools. + \annotatedlist creator-reference + \section1 Analyzers + + Use integrated code analysis tools to improve your C++ or QML code. + + \annotatedlist creator-reference-analyzer + \section1 Build Systems - Most \QC project wizards enable you to choose the build system to use for - building the project: qmake, CMake, Meson, or Qbs. qmake is installed and + When you create projects, you can choose the build system to use for + building the project: CMake, qmake, Meson, or Qbs. qmake is installed and configured when you install Qt. To use one of the other supported build systems, you need to set it up. @@ -29,33 +38,46 @@ \section1 Editors + When you open files, \QC chooses a suitable editor according to the file + type. + \annotatedlist creator-reference-editors \section1 Platforms + You can install and run \QC on several operating systems to create + applications for multiple desktop, embedded, and mobile device platforms. + \annotatedlist creator-reference-platforms \section1 Preferences - Set preferences that apply globally to all projects. + You can set preferences that apply globally to all projects and override + them for particular projects. \annotatedlist creator-reference-preferences \section2 Analyzer + Preferences for code analysis tools. + \annotatedlist creator-reference-preferences-analyzer \section2 C++ + Preferences for editing C++ code. + \annotatedlist creator-reference-preferences-cpp \section2 Kits + Preferences for build and run kits. + \annotatedlist creator-reference-preferences-kits \section2 Text Editor - Configure the text editor to suit your needs. + Preferences for the behavior and appearance of text and code editors. \annotatedlist creator-reference-preferences-text-editor @@ -72,8 +94,7 @@ \section1 UI Design - Design UIs with either \l{User Interfaces}{Qt Quick or Qt Widgets}. - \QC integrates a visual editor, \QD, for designing widget-based UIs + You can use a visual editor, \QD, for designing widget-based UIs in the \uicontrol Design mode. For Qt Quick UIs, use a separate visual editor, \l{\QDS Manual}{\QDS}, or the \uicontrol Edit mode. @@ -81,11 +102,22 @@ \section1 Views + When you switch modes or trigger actions, \QC opens views for viewing + output and organizing project contents. + \section2 Output Views + You can view output from several sources, such as a list of errors and + warnings encountered during a build, detailed output from the compiler, + status of a program when it is executed, debug output, or search results. + \annotatedlist creator-reference-output-views \section2 Sidebar Views + In some modes, you can use a left and right sidebar to organize different + views into project contents. Only views that are relevant to the mode you + are working in are available in it. + \annotatedlist creator-reference-sidebar-views */ diff --git a/doc/qtcreator/src/overview/creator-only/creator-testing.qdoc b/doc/qtcreator/src/overview/creator-only/creator-testing.qdoc deleted file mode 100644 index 34297d34fa5..00000000000 --- a/doc/qtcreator/src/overview/creator-only/creator-testing.qdoc +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright (C) 2023 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only - -// ********************************************************************** -// NOTE: the sections are not ordered by their logical order to avoid -// reshuffling the file each time the index order changes (i.e., often). -// Run the fixnavi.pl script to adjust the links to the index order. -// ********************************************************************** - -/*! - \previouspage creator-build-process-customizing.html - \page creator-testing.html - \nextpage creator-debugging.html - - \title Debugging and Analyzing - - \image front-testing.png - - \list - - \li \l{Debugging} - - If you install \QC with \QOI, the GNU Symbolic Debugger - is installed automatically and you should be ready to start - debugging after you create a new project. However, you can - change the setup to use debugging tools for Windows, for - example. You can connect \l{glossary-device}{devices} to your - development host and debug processes running on the devices. - - \li \l{Analyzing Code} - - Use tools for analyzing C++ and QML code to identify issues in - memory management, CPU usage, coding constructs, and so on. You - must install and configure the tools on your system to use them - from \QC. However, the QML Profiler is installed as part of \QC - for profiling Qt Quick applications. - - \li \l{Using Squish} - - Map AUTs to \QC and run Squish test suites and cases from it. - - \endlist - -*/ diff --git a/doc/qtcreator/src/overview/creator-only/mobile-app-design.qdoc b/doc/qtcreator/src/overview/creator-only/mobile-app-design.qdoc index 1697c2d51c5..d65a1e904c6 100644 --- a/doc/qtcreator/src/overview/creator-only/mobile-app-design.qdoc +++ b/doc/qtcreator/src/overview/creator-only/mobile-app-design.qdoc @@ -11,7 +11,7 @@ \page creator-usability.html \previouspage creator-reference.html - \ingroup creator-reference + \ingroup creator-reference-platforms \title Optimizing Applications for Mobile Devices diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc index 1efac95137c..f91d6e2b0cb 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-creating.qdoc @@ -48,8 +48,9 @@ \image qtcreator-custom-wizard.png {Wizard details in the New Project dialog} In most project wizards, you can choose the build system to use for - building the project: qmake, CMake, or Qbs. If you do not get to choose, - the project uses qmake as the build system. + building the project: qmake, CMake, Qbs, and possibly others, depending on + which plugins you have installed. If you do not get to choose, + the project usually uses CMake as the build system. \image qtcreator-new-project-build-system-qt-gui.png {Define Build System dialog} diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-libraries.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-libraries.qdoc index b96eafb5e77..c4f8d905a33 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-libraries.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-libraries.qdoc @@ -120,7 +120,7 @@ \list 1 - \li Select \uicontrol File > \uicontrol {New Project} > + \li Go to \uicontrol File > \uicontrol {New Project}, and select \uicontrol Library > \uicontrol {C++ Library}. If your top level project is a subdirs project or contains one, you may add the library to the project. However, this does not link other libraries from @@ -131,16 +131,16 @@ \image qtcreator-add-library-internal-project-location.webp {Project Location dialog} - \li In the \uicontrol Name field, give a name for the library. For example, + \li In \uicontrol Name, give a name for the library. For example, \e MyLibrary. \li Select \uicontrol Next (on Windows and Linux) or \uicontrol Continue (on \macos) to open the \uicontrol {Define Build System} dialog. - \li Select \uicontrol Next or \uicontrol Continue to use CMake as the - build system. + \li In \uicontrol {Build system}, select \uicontrol qmake. - The \uicontrol {Define Project Details} dialog opens. + \li Select \uicontrol Next or \uicontrol Continue to open the + \uicontrol {Define Project Details} dialog. \image qtcreator-add-library-internal-project-details.webp {Define Project Details dialog} @@ -170,7 +170,7 @@ \image qtcreator-add-library-internal.webp {Adding an internal library} - \li In the \uicontrol Library field, select \e mylibrary, and then select + \li In \uicontrol Library, select \e mylibrary, and then select \uicontrol Next. \li Select \uicontrol Finish to add the library declaration to the @@ -178,15 +178,7 @@ \endlist - When using CMake, the \c target_link_libraries command is added to the - CMakeLists.txt file: - - \badcode - target_link_libraries(myapplication PRIVATE mylibrary) - \endcode - - When using qmake, the following library declaration is added to the .pro - file: + The wizard adds the following library declaration to the .pro file: \badcode win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../../projects/mylib/release/ -lmylib diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc index ad28fffa576..93510fa4389 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-settings-overview.qdoc @@ -45,22 +45,23 @@ \li Profile \endlist - A debug build has debug symbols that you need for debugging the application - but that you can leave out from the release version. Generally, you use the - debug configuration for testing and the release configuration for creating + A \e Debug build has debug symbols that you need for debugging the application + but that you should leave out from the release version. Generally, you use the + debug configuration for testing and the \e Release configuration for creating the final installation binary package. - If you selected CMake as the build system for the project, you can - use a \e {minimum size release} build configuration to create the + A \e Profile build is an optimized release build with debug information. + It is best suited for analyzing applications. + + If you selected CMake as the build system for the project, a + \e {Release with Debug Information} build configuration is also available. + It is similar to a \e profile configuration, but with + \l{Debugging Qt Quick Projects}{QML debugging and profiling} explicitly turned off. + You can also use a \e {Minimum Size Release} build configuration to create the final installation binary package. It is a release build that makes the size of the binary package as small as possible, even if this makes the application slower. - A profile build (which is called \e {release with debug information} - when using CMake) is an optimized release build that is delivered - with separate debug information. It is best suited for analyzing - applications. - \section1 Specifying Run Settings The run settings to specify depend on the type of the project and on the diff --git a/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets.qdoc b/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets.qdoc index 9c96d3c73b7..13b1f216380 100644 --- a/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets.qdoc +++ b/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets.qdoc @@ -2,7 +2,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only /*! - \page tutorial-python-application-qt-widgets.html + \page creator-tutorial-python-application-qt-widgets.html \previouspage creator-tutorials.html \nextpage creator-how-tos.html diff --git a/doc/qtcreator/src/qtcreator-toc.qdoc b/doc/qtcreator/src/qtcreator-toc.qdoc index 52b28cf7e2b..0a60027451d 100644 --- a/doc/qtcreator/src/qtcreator-toc.qdoc +++ b/doc/qtcreator/src/qtcreator-toc.qdoc @@ -13,20 +13,15 @@ {Qt documentation} portal or in the \l {Get help}{Help} mode. \list - \li \l{Getting Started} - \list - \li \l{Overview} + \li \l{Developing with \QC} \list + \li \l{Getting Started} + \list + \li \l{User Interface} + \li \l{Configuring Qt Creator} + \endlist \li \l{Creating Projects} \li \l{Configuring Projects} - \endlist - \li \l{User Interface} - \li \l{Configuring Qt Creator} - \endlist - \li \l{Tutorials} - \generatelist creator-tutorials - \li \l{Running on Devices} - \list \li \l{Validating with Target Hardware} \list \li \l{Previewing on Desktop} @@ -52,9 +47,6 @@ \li \l{Connecting Remote Linux Devices} \li \l{Building Applications for the Web} \endlist - \endlist - \li \l{Debugging and Analyzing} - \list \li \l{Debugging} \list \li \l{Setting Up Debugger} @@ -97,6 +89,8 @@ \endlist \li \l{Using Squish} \endlist + \li \l{Tutorials} + \generatelist creator-tutorials \li \l{How To} \list \li Analyze diff --git a/doc/qtcreator/src/qtcreator.qdoc b/doc/qtcreator/src/qtcreator.qdoc index bb83726951f..cc3352dd108 100644 --- a/doc/qtcreator/src/qtcreator.qdoc +++ b/doc/qtcreator/src/qtcreator.qdoc @@ -9,7 +9,7 @@ /*! \page index.html - \nextpage creator-getting-started.html + \nextpage creator-overview.html \title Qt Creator Manual @@ -27,37 +27,27 @@ \table \row - \li {4,1} \b {\l{All Topics}{Click Here for a List of All Topics}} + \li {4,1} \b {\l{All Topics}} \row \li \inlineimage front-gs.png \li \inlineimage front-coding.png - \li \inlineimage front-preview.png - \row - \li \b {\l{Getting Started}} - \list - \li \l{Overview} - \li \l{User Interface} - \li \l{Configuring Qt Creator} - \endlist - \li \b {\l{Tutorials}} - \generatelist creator-tutorials - \li \b {\l{Running on Devices}} - \list - \li \l{Validating with Target Hardware} - \li \l{Deploying to Devices} - \li \l{Connecting Devices} - \endlist - \row - \li \inlineimage front-testing.png \li \inlineimage front-help.png \li \inlineimage front-advanced.png \row - \li \b {\l{Debugging and Analyzing}} + \li \b {\l{Developing with \QC}} \list + \li \l{Getting Started} + \li \l{Creating Projects} + \li \l{Configuring Projects} + \li \l{Validating with Target Hardware} + \li \l{Connecting Devices} + \li \l{Deploying to Devices} \li \l{Debugging} \li \l{Analyzing Code} \li \l{Using Squish} \endlist + \li \b {\l{Tutorials}} + \generatelist creator-tutorials \li \b {\l{How To}} \list \li \l{Analyze} @@ -70,7 +60,6 @@ \li \l{Test} \li \l{Use \QC} \li \l{Use the UI} - \li \l{How To}{See More...} \endlist \li \b {\l{Reference}} \list @@ -81,7 +70,8 @@ \li \l {Keyboard Shortcuts} \li \l {Preferences} \li \l {Supported Platforms} - \li \l {Reference}{See More...} + \li \l {Version Control Systems} + \li \l {Views} \endlist \endtable */ diff --git a/doc/qtcreator/src/qtquick/creator-only/creator-mobile-app-tutorial.qdoc b/doc/qtcreator/src/qtquick/creator-only/creator-mobile-app-tutorial.qdoc index 830d1c8a844..f06917784bc 100644 --- a/doc/qtcreator/src/qtquick/creator-only/creator-mobile-app-tutorial.qdoc +++ b/doc/qtcreator/src/qtquick/creator-only/creator-mobile-app-tutorial.qdoc @@ -133,7 +133,7 @@ \skipto set_property \printuntil ) - Because the CMake version is older than 3.19, add a manual + For compatibility with CMake versions older than 3.19, add a manual finalization step to the \c qt_add_executable function: \quotefromfile accelbubble/CMakeLists.txt diff --git a/doc/qtcreatordev/src/qtcreator-documentation.qdoc b/doc/qtcreatordev/src/qtcreator-documentation.qdoc index ab77767446a..6b0ac33404e 100644 --- a/doc/qtcreatordev/src/qtcreator-documentation.qdoc +++ b/doc/qtcreatordev/src/qtcreator-documentation.qdoc @@ -247,14 +247,12 @@ \endlist The title of the topic to use for automatically generating the navigation - links is set as the value of the \c indexTitle option in the document - configuration file: + links is set as the value of the \c navigation.toctitles option in the + document configuration file: \list - \li \QC: \c qhp.qtcreator.subprojects.manual.indexTitle in - \c {\doc\qtcreator\config\qtcreator-project.qdocconf} - \li \QDS: \c qhp.qtdesignstudio.subprojects.manual.indexTitle in - \c {\doc\qtdesignstudio\config\qtdesignstudio.qdocconf} + \li \QC: \c {\doc\qtcreator\config\qtcreator-project.qdocconf} + \li \QDS: \c {\doc\qtdesignstudio\config\qtdesignstudio.qdocconf} \endlist When you add new topics, you must add them either to the TOC or to a diff --git a/share/qtcreator/schemes/MS_Visual_Studio_Code.kms b/share/qtcreator/schemes/MS_Visual_Studio_Code.kms index cce5508957e..e1ea112b2a6 100644 --- a/share/qtcreator/schemes/MS_Visual_Studio_Code.kms +++ b/share/qtcreator/schemes/MS_Visual_Studio_Code.kms @@ -25,4 +25,8 @@ + + + + diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts index f20112174ac..2fbbc514c4e 100644 --- a/share/qtcreator/translations/qtcreator_de.ts +++ b/share/qtcreator/translations/qtcreator_de.ts @@ -12218,123 +12218,123 @@ und das Überschreiben Ihrer Einstellungen erfordert. Das Überschreiben erlaube QtC::AppManager Create Application Manager package with CMake - + Application Manager-Paket mit CMake erstellen Create Application Manager package - + Application Manager-Paket erstellen Source directory: - Quellverzeichnis: + Quellverzeichnis: Package file: - + Paketdatei: Automatic Application Manager Deploy Configuration - + Automatische Deployment-Konfiguration für Application Manager Deploy Application Manager package - + Deployment des Application Manager-Pakets Target directory: - Zielverzeichnis: + Zielverzeichnis: Uploading finished. - + Hochladen beendet. Uploading failed. - + Hochladen fehlgeschlagen. Install Application Manager package - + Application Manager-Paket installieren Starting command "%1". - Starte Kommando "%1". + Starte Kommando "%1". Command finished successfully. - + Das Kommando wurde erfolgreich beendet. Process failed: %1 - + Der Prozess schlug fehl: %1 Process finished with exit code %1. - + Der Prozess wurde mit dem Rückgabewert %1 beendet. Run an Application Manager Package - + Ein Application Manager-Paket ausführen Run and Debug an Application Manager Package - + Ein Application Manager-Paket ausführen und debuggen Clean Environment - Saubere Umgebung + Saubere Umgebung %1 exited. - + %1 wurde beendet. Starting Application Manager debugging... - + Starte Application Manager-Debuggen... Using: %1. - + Benutze: %1. Cannot debug: Only QML and native applications are supported. - + Kann nicht debuggen: Es werden nur QML- und native Anwendungen unterstützt. Cannot debug: Local executable is not set. - Kann nicht debuggen: Lokale ausführbare Datei ist nicht angegeben. + Kann nicht debuggen: Lokale ausführbare Datei ist nicht angegeben. Application ID: - + Anwendungs-ID: Application Manager instance ID: - + ID der Application Manager-Instanz: Default instance - + Voreingestellte Instanz Document URL: - + Dokument-URL: Customize step - + Schritt anpassen 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. Controller: - + Controller: Packager: - + Packager: @@ -13693,178 +13693,181 @@ Siehe auch die Einstellungen für Google Test. QtC::Axivion Project: - + Projekt: Lines of code: - + Codezeilen: Analysis timestamp: - + Zeitstempel der Analyse: unknown - unbekannt + unbekannt Total: - + Summe: Owner - + Eigentümer Path globbing - + Pfad-Globbing Total rows: - + Gesamtzeilen: Axivion - + Axivion Show dashboard - + Dashboard anzeigen Search for issues - + Probleme durchsuchen Show rule details - + Regeldetails anzeigen Certificate Error - Zertifikatsfehler + Zertifikatsfehler Server certificate for %1 cannot be authenticated. Do you want to disable SSL verification for this server? Note: This can expose you to man-in-the-middle attack. - Server-Zertifikat für %1 kann nicht authentifiziert werden. + Server-Zertifikat für %1 kann nicht authentifiziert werden. Möchten Sie die SSL-Verifikation für diesen Server abschalten? Hinweis: Dies macht Sie anfällig für Man-in-the-middle-Angriffe. Unknown Dto structure deserialization error. - + Unbekannter Fehler in der Dto-Struktur beim Deserialisieren. The ApiToken cannot be read in a secure way. - + Das ApiToken kann nicht auf sichere Weise gelesen werden. The ApiToken cannot be stored in a secure way. - + Das ApiToken kann nicht auf sichere Weise gespeichert werden. The ApiToken cannot be deleted in a secure way. - + Das ApiToken kann nicht auf sichere Weise gelöscht werden. Key chain message: "%1". - + Meldung der Schlüsselverwaltung: "%1". Enter the password for: Dashboard: %1 User: %2 - + Geben Sie das Passwort ein für: +Dashboard: %1 +Benutzer: %2 Axivion Server Password - + Axivion Server-Passwort The stored ApiToken is not valid anymore, removing it. - + Das gespeicherte ApiToken ist nicht mehr gültig und wird entfernt. 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? - + Der aktivierte Link scheint extern zu sein. +Wollen Sie "%1" mit der Standardanwendung öffnen? Open External Links - + Externe Links öffnen 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 Marks issues on the scroll bar. - + Markiert Probleme in der Bildlaufleiste. Dashboard URL: - + Dashboard-URL: Username: - + Benutzername: User name - Benutzername + Benutzername Edit... - Bearbeiten... + Bearbeiten... Edit Dashboard Configuration - + Dashboard-Konfiguration bearbeiten General - Allgemein + Allgemein Fetching... - + Rufe ab... @@ -44332,7 +44335,7 @@ fails because Clang does not understand the target architecture. &Generate Kit - + &Kit erstellen &Clean Up @@ -44400,19 +44403,19 @@ fails because Clang does not understand the target architecture. Installing PySide - + Installiere PySide You can install PySide from PyPi (Community OSS version) or from your Qt installation location, if you are using the Qt Installer and have a commercial license. - + Sie können PySide von PyPI (Community OSS-Version) oder, falls Sie den Qt-Installer benutzen und eine kommerzielle Lizenz besitzen, von Ihrer Qt-Installation installieren. Select which version to install: - + Wählen Sie die zu installierende Version aus: Latest PySide from the PyPI - + Letzte PySide-Version von PyPI PySide %1 Wheel (%2) @@ -44464,27 +44467,28 @@ fails because Clang does not understand the target architecture. PySide uic tool: - + PySide uic-Werkzeug: Enter location of PySide uic tool. - + Geben Sie den Ort des PySide uic-Werkzeugs ein. Effective venv: - + Resultierende venv: New Virtual Environment - + Neue virtuelle Umgebung Global Python - + Globales Python Virtual Environment - + python->name + Tr::tr(" Virtual Environment"); + virtuelle Umgebung REPL @@ -44564,43 +44568,43 @@ fails because Clang does not understand the target architecture. None - + Kein The interpreter used for Python based projects. - + Der für Python-basierte Projekte benutzte Interpreter. No Python setup. - + Kein Python eingerichtet. Python "%1" not found. - + Python "%1" nicht gefunden. Python "%1" is not executable. - + Python "%1" nicht ausführbar. Python "%1" does not contain a usable pip. pip is needed to install Python packages from the Python Package Index, like PySide and the Python language server. To use any of that functionality ensure that pip is installed for that Python. - + Python "%1" enthält kein verwendbares pip. pip wird für das Installieren von Python-Paketen wie PySide und dem Python Language Server vom Python Package Index benötigt. Um diese Funktionen benutzen zu können, stellen Sie sicher, dass pip für dieses Python installiert ist. Python "%1" does not contain a usable venv. venv is the recommended way to isolate a development environment for a project from the globally installed Python. - + Python "%1" enthält kein verwendbares venv. venv ist der empfohlene Weg, um eine Entwicklungsumgebung für ein Projekt von der globalen Python-Installation zu isolieren. Name of Python Interpreter - + Name des Python-Interpreters Path to Python Interpreter - + Pfad zum Python-Interpreter No Python interpreter set for kit "%1" - + Kein Python-Interpreter für das Kit "%1" eingerichtet @@ -49742,7 +49746,7 @@ Zusätzlich wird die Verbindung zum Gerät getestet. Remote command finished successfully. - Das entfernte Kommando wurde erfolgreich ausgeführt. + Das entfernte Kommando wurde erfolgreich beendet. WizardPage diff --git a/src/libs/solutions/tasking/tasktree.cpp b/src/libs/solutions/tasking/tasktree.cpp index c6e87d27746..7d37bf97587 100644 --- a/src/libs/solutions/tasking/tasktree.cpp +++ b/src/libs/solutions/tasking/tasktree.cpp @@ -547,18 +547,6 @@ private: \endcode */ -/*! - \fn GroupItem Group::withTimeout(std::chrono::milliseconds timeout, const std::function &handler) const - - Attaches \c TimeoutTask to a copy of \c this group, elapsing after \a timeout in milliseconds, - with an optionally provided timeout \a handler, and returns the coupled item. - - When the group finishes before \a timeout passes, - the returned item finishes immediately with the group's result. - Otherwise, the \a handler is invoked (if provided), the group's tasks are canceled, - and the returned item finishes with an error. -*/ - /*! \class Tasking::Sync \inheaderfile solutions/tasking/tasktree.h @@ -758,17 +746,6 @@ private: \sa TaskSetupHandler, TaskDoneHandler */ -/*! - \fn template GroupItem CustomTask::withTimeout(std::chrono::milliseconds timeout, const std::function &handler) const - - Attaches \c TimeoutTask to a copy of \c this task, elapsing after \a timeout in milliseconds, - with an optionally provided timeout \a handler, and returns the coupled item. - - When the task finishes before \a timeout passes, the returned item finishes immediately - with the task's result. Otherwise, \a handler is invoked (if provided), - the task is canceled, and the returned item finishes with an error. -*/ - /*! \enum Tasking::WorkflowPolicy @@ -1415,6 +1392,26 @@ void GroupItem::addChildren(const QList &children) } } +/*! + \class Tasking::ExecutableItem + \inheaderfile solutions/tasking/tasktree.h + \inmodule TaskingSolution + \brief Base class for executable task items. + \reentrant + + \c ExecutableItem provides an additional interface for items containing executable tasks. + Use withTimeout() to attach a timeout to a task. + Use withLog() to include debugging information about the task startup and the execution result. +*/ + +/*! + Attaches \c TimeoutTask to a copy of \c this ExecutableItem, elapsing after \a timeout + in milliseconds, with an optionally provided timeout \a handler, and returns the coupled item. + + When the ExecutableItem finishes before \a timeout passes, the returned item finishes + immediately with the task's result. Otherwise, \a handler is invoked (if provided), + the task is canceled, and the returned item finishes with an error. +*/ ExecutableItem ExecutableItem::withTimeout(milliseconds timeout, const std::function &handler) const { @@ -1433,6 +1430,17 @@ ExecutableItem ExecutableItem::withTimeout(milliseconds timeout, static QString currentTime() { return QTime::currentTime().toString(Qt::ISODateWithMs); } +/*! + Attaches a custom debug printout to a copy of \c this ExecutableItem, + issued on task startup and after the task is finished, and returns the coupled item. + + The debug printout includes a timestamp of the event (start or finish) + and \a logName to identify the specific task in the debug log. + + The finish printout contains the additional information whether the execution was + synchronous or asynchronous, its result (the value described by the DoneWith enum), + and the total execution time in milliseconds. +*/ ExecutableItem ExecutableItem::withLog(const QString &logName) const { const auto header = [logName] { diff --git a/src/plugins/axivion/axivionplugin.cpp b/src/plugins/axivion/axivionplugin.cpp index f0f90d3f253..fa455c07eb9 100644 --- a/src/plugins/axivion/axivionplugin.cpp +++ b/src/plugins/axivion/axivionplugin.cpp @@ -450,8 +450,10 @@ static Group dtoRecipe(const Storage> &dtoStorage) if (error) { if constexpr (std::is_same_v) { // Suppress logging error on unauthorized dashboard fetch - if (!dtoStorage->credential && error->type == "UnauthenticatedException") + if (!dtoStorage->credential && error->type == "UnauthenticatedException") { + dtoStorage->url = reply->url(); return DoneResult::Success; + } } errorString = Error(DashboardError(reply->url(), statusCode, @@ -530,13 +532,11 @@ static void handleCredentialError(const CredentialQuery &credential) static Group authorizationRecipe() { + const Storage serverUrlStorage; const Storage> unauthorizedDashboardStorage; - const auto onUnauthorizedGroupSetup = [unauthorizedDashboardStorage] { - if (isServerAccessEstablished()) - return SetupResult::StopWithSuccess; - - unauthorizedDashboardStorage->url = QUrl(settings().server.dashboard); - return SetupResult::Continue; + const auto onUnauthorizedGroupSetup = [serverUrlStorage, unauthorizedDashboardStorage] { + unauthorizedDashboardStorage->url = *serverUrlStorage; + return isServerAccessEstablished() ? SetupResult::StopWithSuccess : SetupResult::Continue; }; const auto onUnauthorizedDashboard = [unauthorizedDashboardStorage] { if (unauthorizedDashboardStorage->dtoData) { @@ -575,7 +575,7 @@ static Group authorizationRecipe() const Storage passwordStorage; const Storage> dashboardStorage; - const auto onPasswordGroupSetup = [passwordStorage, dashboardStorage] { + const auto onPasswordGroupSetup = [serverUrlStorage, passwordStorage, dashboardStorage] { if (dd->m_apiToken) return SetupResult::StopWithSuccess; @@ -589,7 +589,7 @@ static Group authorizationRecipe() const QString credential = settings().server.username + ':' + *passwordStorage; dashboardStorage->credential = "Basic " + credential.toUtf8().toBase64(); - dashboardStorage->url = QUrl(settings().server.dashboard); + dashboardStorage->url = *serverUrlStorage; return SetupResult::Continue; }; @@ -632,13 +632,13 @@ static Group authorizationRecipe() return DoneResult::Success; }; - const auto onDashboardGroupSetup = [dashboardStorage] { + const auto onDashboardGroupSetup = [serverUrlStorage, dashboardStorage] { if (dd->m_dashboardInfo || dd->m_serverAccess != ServerAccess::WithAuthorization || !dd->m_apiToken) { return SetupResult::StopWithSuccess; // Unauthorized access should have collect dashboard before } dashboardStorage->credential = "AxToken " + *dd->m_apiToken; - dashboardStorage->url = QUrl(settings().server.dashboard); + dashboardStorage->url = *serverUrlStorage; return SetupResult::Continue; }; const auto onDeleteCredentialSetup = [dashboardStorage](CredentialQuery &credential) { @@ -656,11 +656,16 @@ static Group authorizationRecipe() }; return { + serverUrlStorage, + onGroupSetup([serverUrlStorage] { *serverUrlStorage = QUrl(settings().server.dashboard); }), Group { unauthorizedDashboardStorage, onGroupSetup(onUnauthorizedGroupSetup), dtoRecipe(unauthorizedDashboardStorage), - Sync(onUnauthorizedDashboard) + Sync(onUnauthorizedDashboard), + onGroupDone([serverUrlStorage, unauthorizedDashboardStorage] { + *serverUrlStorage = unauthorizedDashboardStorage->url; + }), }, Group { LoopUntil(onCredentialLoopCondition), diff --git a/src/plugins/axivion/axivionsettings.cpp b/src/plugins/axivion/axivionsettings.cpp index 9b24fa51f02..2af22e7cb9d 100644 --- a/src/plugins/axivion/axivionsettings.cpp +++ b/src/plugins/axivion/axivionsettings.cpp @@ -261,6 +261,7 @@ AxivionSettingsWidget::AxivionSettingsWidget() void AxivionSettingsWidget::apply() { settings().server = m_dashboardDisplay->dashboardServer(); + emit settings().changed(); // ugly but needed settings().toSettings(); } diff --git a/src/plugins/clangcodemodel/clangdfindreferences.cpp b/src/plugins/clangcodemodel/clangdfindreferences.cpp index b7e62d6e055..13968801e7b 100644 --- a/src/plugins/clangcodemodel/clangdfindreferences.cpp +++ b/src/plugins/clangcodemodel/clangdfindreferences.cpp @@ -291,12 +291,17 @@ void ClangdFindReferences::Private::handleFindUsagesResult(const QList for (const Location &loc : locations) fileData[loc.uri()].rangesAndLineText.push_back({loc.range(), {}}); + QSet canonicalFilePaths; for (auto it = fileData.begin(); it != fileData.end();) { const Utils::FilePath filePath = client()->serverUriToHostPath(it.key()); if (!filePath.exists()) { // https://github.com/clangd/clangd/issues/935 it = fileData.erase(it); continue; } + if (!Utils::insert(canonicalFilePaths, filePath.canonicalPath())) { // QTCREATORBUG-30546 + it = fileData.erase(it); + continue; + } const QStringList lines = SymbolSupport::getFileContents(filePath); it->fileContent = lines.join('\n'); for (auto &rangeWithText : it.value().rangesAndLineText) { diff --git a/src/plugins/languageclient/languageclientsymbolsupport.cpp b/src/plugins/languageclient/languageclientsymbolsupport.cpp index e9c4443eed3..3a9a1b09705 100644 --- a/src/plugins/languageclient/languageclientsymbolsupport.cpp +++ b/src/plugins/languageclient/languageclientsymbolsupport.cpp @@ -274,6 +274,10 @@ struct ItemData Utils::Text::Range range; QVariant userData; }; +bool operator==(const ItemData &id1, const ItemData &id2) +{ + return id1.range == id2.range && id1.userData == id2.userData; +} QStringList SymbolSupport::getFileContents(const Utils::FilePath &filePath) { @@ -342,15 +346,32 @@ Utils::SearchResultItems generateSearchResultItems( return result; } +using ItemDataPerPath = QMap>; +void filterFileAliases(ItemDataPerPath &itemDataPerPath) +{ + QSet canonicalPaths; + for (auto it = itemDataPerPath.begin(); it != itemDataPerPath.end(); ) { + const Utils::FilePath canonicalPath = it.key().canonicalPath(); + if (!Utils::insert(canonicalPaths, canonicalPath) + && it.value() == itemDataPerPath.value(canonicalPath)) { // QTCREATORBUG-30546 + it = itemDataPerPath.erase(it); + } else { + ++it; + } + } +} + Utils::SearchResultItems generateSearchResultItems( const LanguageClientArray &locations, const DocumentUri::PathMapper &pathMapper) { if (locations.isNull()) return {}; - QMap> rangesInDocument; - for (const Location &location : locations.toList()) + ItemDataPerPath rangesInDocument; + for (const Location &location : locations.toList()) { rangesInDocument[location.uri().toFilePath(pathMapper)] << ItemData{SymbolSupport::convertRange(location.range()), {}}; + } + filterFileAliases(rangesInDocument); return generateSearchResultItems(rangesInDocument); } @@ -552,7 +573,7 @@ Utils::SearchResultItems generateReplaceItems(const WorkspaceEdit &edits, return ItemData{SymbolSupport::convertRange(edit.range()), QVariant(edit)}; }); }; - QMap> rangesInDocument; + ItemDataPerPath rangesInDocument; auto documentChanges = edits.documentChanges().value_or(QList()); if (!documentChanges.isEmpty()) { for (const DocumentChange &documentChange : std::as_const(documentChanges)) { @@ -588,6 +609,7 @@ Utils::SearchResultItems generateReplaceItems(const WorkspaceEdit &edits, for (auto it = changes.begin(), end = changes.end(); it != end; ++it) rangesInDocument[it.key().toFilePath(pathMapper)] = convertEdits(it.value()); } + filterFileAliases(rangesInDocument); items += generateSearchResultItems(rangesInDocument, search, limitToProjects); return items; } diff --git a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp index fb82f839d8f..541e848c1f5 100644 --- a/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp +++ b/src/plugins/qmakeprojectmanager/qmakebuildconfiguration.cpp @@ -372,7 +372,8 @@ QString QmakeBuildConfiguration::unalignedBuildDirWarning() bool QmakeBuildConfiguration::isBuildDirAtSafeLocation(const FilePath &sourceDir, const FilePath &buildDir) { - return buildDir.path().count('/') == sourceDir.path().count('/'); + return buildDir.path().count('/') == sourceDir.path().count('/') + || buildDir.isChildOf(sourceDir); } bool QmakeBuildConfiguration::isBuildDirAtSafeLocation() const diff --git a/src/shared/qbs b/src/shared/qbs index 44d658cbf47..5c88b6b11b7 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit 44d658cbf479a597ba22bb661c8ca68d7a98be6d +Subproject commit 5c88b6b11b762cf5861c9d1570df4f1f050c826e diff --git a/tests/auto/debugger/tst_dumpers.cpp b/tests/auto/debugger/tst_dumpers.cpp index 4db15462d8a..55ae944ef69 100644 --- a/tests/auto/debugger/tst_dumpers.cpp +++ b/tests/auto/debugger/tst_dumpers.cpp @@ -3352,19 +3352,23 @@ void tst_Dumpers::dumper_data() + CoreProfile() + Check("pii", "(1, 2)", "@QPair") % Qt5 - + Check("pii", "(1, 2)", TypeDef("std::pair", "@QPair")) % Qt6 + + Check("pii", "(1, 2)", TypeDef("std::pair", "@QPair")) % Qt6 % NoLldbEngine + + Check("pii", "(1, 2)", TypePattern("@QPair()?")) % Qt6 % LldbEngine + Check("pii.first", "1", "int") + Check("pii.second", "2", "int") + Check("pis", "(1, ...)", "@QPair") % Qt5 - + Check("pis", "(1, ...)", TypeDef("std::pair", "@QPair")) % Qt6 + + Check("pis", "(1, ...)", TypeDef("std::pair", "@QPair")) % Qt6 % NoLldbEngine + + Check("pis", "(1, ...)", TypePattern("@QPair()?")) % Qt6 % LldbEngine + Check("pis.first", "1", "int") + Check("pis.second", "\"ttt\"", "@QString") + Check("psi", "(..., 2)", "@QPair") % Qt5 - + Check("psi", "(..., 2)", TypeDef("std::pair", "@QPair")) % Qt6 + + Check("psi", "(..., 2)", TypeDef("std::pair", "@QPair")) % Qt6 % NoLldbEngine + + Check("psi", "(..., 2)", TypePattern("@QPair()?")) % Qt6 % LldbEngine + Check("psi.first", "\"sss\"", "@QString") + Check("psi.second", "2", "int") + Check("pss", "(..., ...)", "@QPair") % Qt5 - + Check("pss", "(..., ...)", TypeDef("std::pair", "@QPair")) % Qt6 + + Check("pss", "(..., ...)", TypeDef("std::pair", "@QPair")) % Qt6 % NoLldbEngine + + Check("pss", "(..., ...)", TypePattern("@QPair()?")) % Qt6 % LldbEngine + Check("pss.first", "\"sss\"", "@QString") + Check("pss.second", "\"ttt\"", "@QString"); diff --git a/tests/system/suite_HELP/tst_HELP06/test.py b/tests/system/suite_HELP/tst_HELP06/test.py index ff6d02ce968..623498fc40b 100644 --- a/tests/system/suite_HELP/tst_HELP06/test.py +++ b/tests/system/suite_HELP/tst_HELP06/test.py @@ -36,10 +36,11 @@ def main(): test.warning("It takes more than two seconds to expand the help content tree.") gettingStartedQModelIndex = getQModelIndexStr("text='Getting Started'", manualQModelIndex) doubleClick(gettingStartedQModelIndex, 5, 5, 0, Qt.LeftButton) - mouseClick(waitForObject(getQModelIndexStr("text='Building and Running an Example'", + pageTitle = "Configuring Qt Creator" + mouseClick(waitForObject(getQModelIndexStr("text='%s'" % pageTitle, gettingStartedQModelIndex))) helpSelector = waitForObject(":Qt Creator_HelpSelector_QComboBox") - pageOpened = "str(helpSelector.currentText).startswith('Building and Running an Example')" + pageOpened = "str(helpSelector.currentText).startswith('%s')" % pageTitle if not waitFor(pageOpened, 10000): test.fatal("Help page is not opened after ten seconds. Giving up.") invokeMenuItem("File", "Exit") @@ -74,7 +75,7 @@ def main(): sampleQModelIndex = getQModelIndexStr("text='Sample'", ":Qt Creator_Bookmarks_TreeView") folder1QModelIndex = getQModelIndexStr("text='Folder 1'", sampleQModelIndex) folder2QModelIndex = getQModelIndexStr("text='Folder 2'", folder1QModelIndex) - bldRunQModelIndex = getQModelIndexStr("text?='%s'" % textForQtVersion("Building and Running an Example*"), + configQModelIndex = getQModelIndexStr("text?='%s'" % textForQtVersion("%s*" % pageTitle), folder2QModelIndex) newFolderQModelIndex = getQModelIndexStr("text='New Folder'", sampleQModelIndex) manualQModelIndex = getQModelIndexStr("text='%s'" % textForQtVersion("Qt Creator Manual"), @@ -82,16 +83,16 @@ def main(): test.verify(checkIfObjectExists(sampleQModelIndex, verboseOnFail = True) and checkIfObjectExists(folder1QModelIndex, verboseOnFail = True) and checkIfObjectExists(folder2QModelIndex, verboseOnFail = True) and - checkIfObjectExists(bldRunQModelIndex, verboseOnFail = True) and + checkIfObjectExists(configQModelIndex, verboseOnFail = True) and checkIfObjectExists(manualQModelIndex, verboseOnFail = True), "Verifying if all folders and bookmarks are present") mouseClick(waitForObject(":Qt Creator_Bookmarks_TreeView"), 5, 5, 0, Qt.LeftButton) for _ in range(6): type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "") type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "") - test.verify(textForQtVersion("Building and Running an Example") in getHelpTitle(), + test.verify(textForQtVersion(pageTitle) in getHelpTitle(), "Verifying if first bookmark is opened") - mouseClick(waitForObject(bldRunQModelIndex)) + mouseClick(waitForObject(configQModelIndex)) type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "") type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "") type(waitForObject(":Qt Creator_Bookmarks_TreeView"), "") @@ -114,7 +115,7 @@ def main(): test.verify(checkIfObjectExists(sampleQModelIndex, verboseOnFail = True) and checkIfObjectExists(folder1QModelIndex, shouldExist = False, verboseOnFail = True) and checkIfObjectExists(folder2QModelIndex, shouldExist = False, verboseOnFail = True) and - checkIfObjectExists(bldRunQModelIndex, shouldExist = False, verboseOnFail = True) and + checkIfObjectExists(configQModelIndex, shouldExist = False, verboseOnFail = True) and checkIfObjectExists(manualQModelIndex, verboseOnFail = True), "Verifying if folder 1 and folder 2 deleted including their bookmark") # exit diff --git a/tests/system/suite_WELP/tst_WELP01/test.py b/tests/system/suite_WELP/tst_WELP01/test.py index 61ee8a6030b..8385c33fa96 100644 --- a/tests/system/suite_WELP/tst_WELP01/test.py +++ b/tests/system/suite_WELP/tst_WELP01/test.py @@ -14,8 +14,9 @@ def clickItemVerifyHelpCombo(button, expectedHelpComboRegex, testDetails): test.log("Found %s" % str(helpCombo.currentText)) # select "Welcome" page from left toolbar again switchViewTo(ViewConstants.WELCOME) - return test.verify(object.exists(getWelcomeScreenSideBarButton(getStarted)), + return test.verify(checkIfObjectExists(getWelcomeScreenSideBarButton(getStarted), timeout=1000), "Verifying: '%s' button is being displayed." % getStarted) + def buttonActive(button): return waitForObject(button).checked diff --git a/tests/system/suite_general/tst_session_handling/test.py b/tests/system/suite_general/tst_session_handling/test.py index 305d64895ea..20b4ae51bb1 100644 --- a/tests/system/suite_general/tst_session_handling/test.py +++ b/tests/system/suite_general/tst_session_handling/test.py @@ -85,7 +85,7 @@ def createAndSwitchToSession(toSession): def checkWelcomePage(sessionName, isCurrent=False): switchViewTo(ViewConstants.WELCOME) wsButton = getWelcomeScreenSideBarButton('Projects') - if not object.exists(wsButton): + if not checkIfObjectExists(wsButton, timeout=1000): test.fatal("Something's pretty wrong - leaving check for WelcomePage.") return mouseClick(wsButton)