Merge remote-tracking branch 'origin/13.0'

Change-Id: I12578a55fb61a3a9620c749c0b3bbbae6dcb4493
This commit is contained in:
Eike Ziller
2024-04-02 14:54:30 +02:00
53 changed files with 176 additions and 161 deletions

View File

@@ -329,6 +329,7 @@ Credits for these changes go to:
Aaron McCarthy Aaron McCarthy
Aleksei German Aleksei German
Alessandro Portale Alessandro Portale
Alexandre Laurent
Alexey Edelev Alexey Edelev
Ali Kianian Ali Kianian
Amr Essam Amr Essam
@@ -337,6 +338,7 @@ André Pönitz
Andreas Loth Andreas Loth
Artem Sokolovskii Artem Sokolovskii
Assam Boudjelthia Assam Boudjelthia
Aurele Faure
Brook Cronin Brook Cronin
Burak Hancerli Burak Hancerli
Christian Kandeler Christian Kandeler
@@ -378,6 +380,7 @@ Serg Kryvonos
Shrief Gabr Shrief Gabr
Sivert Krøvel Sivert Krøvel
Tasuku Suzuki Tasuku Suzuki
Thiago Macieira
Thomas Hartmann Thomas Hartmann
Tim Jenßen Tim Jenßen
Vikas Pachdha Vikas Pachdha

View File

@@ -74,12 +74,15 @@
<li><a href="creator-keyboard-shortcuts.html">Keyboard Shortcuts</a></li> <li><a href="creator-keyboard-shortcuts.html">Keyboard Shortcuts</a></li>
<li><a href="creator-known-issues.html">Known Issues</a></li> <li><a href="creator-known-issues.html">Known Issues</a></li>
<li><a href="technical-support.html">Technical Support</a></li> <li><a href="technical-support.html">Technical Support</a></li>
<li><a href="creator-version-control.html">Version Control Systems</a></li>
<li><a href="creator-reference.html#analyzers">Analyzers</a></li>
<li><a href="creator-reference.html#build-configurations">Build Configurations</a></li>
<li><a href="creator-reference.html#build-systems">Build Systems</a></li> <li><a href="creator-reference.html#build-systems">Build Systems</a></li>
<li><a href="creator-reference.html#Editors">Editors</a></li> <li><a href="creator-reference.html#editors">Editors</a></li>
<li><a href="creator-reference.html#platforms">Platforms</a></li> <li><a href="creator-reference.html#platforms">Platforms</a></li>
<li><a href="creator-reference.html#preferences">Preferences</a></li> <li><a href="creator-reference.html#preferences">Preferences</a></li>
<li><a href="creator-reference.html#run-configurations">Run Configurations</a></li>
<li><a href="creator-reference.html#ui-design">UI Design</a></li> <li><a href="creator-reference.html#ui-design">UI Design</a></li>
<li><a href="creator-version-control.html">Version Control Systems</a></li>
<li><a href="creator-reference.html#views">Views</a></li> <li><a href="creator-reference.html#views">Views</a></li>
<li><a href="creator-reference.html">See All</a></li> <li><a href="creator-reference.html">See All</a></li>
</ul> </ul>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@@ -52,7 +52,7 @@
(\uicontrol Start) button to start the application from the (\uicontrol Start) button to start the application from the
\uicontrol {Performance Analyzer}. \uicontrol {Performance Analyzer}.
\inlineimage qtcreator-performance-analyzer-toolbar.png "Performance Analyzer toolbar" \image qtcreator-performance-analyzer-toolbar.png {Performance Analyzer toolbar}
\endlist \endlist

View File

@@ -106,8 +106,8 @@
to load diagnostics from \l{https://yaml.org/}{YAML} files that you exported to load diagnostics from \l{https://yaml.org/}{YAML} files that you exported
using the \c {-export fixes} option. using the \c {-export fixes} option.
\sa {Configure Clang Diagnostics}, {Speficy Clang tools settings}, \sa {Check code syntax}, {Configure Clang Diagnostics},
{Clang Tools} {Specify Clang tools settings}, {Clang Tools}
*/ */
/*! /*!
@@ -116,7 +116,7 @@
\ingroup creator-how-to-projects-configure \ingroup creator-how-to-projects-configure
\title Speficy Clang tools settings \title Specify Clang tools settings
To set Clang-Tidy and Clazy checks to run for the current project: To set Clang-Tidy and Clazy checks to run for the current project:
@@ -189,7 +189,7 @@
\endlist \endlist
\sa {Configure Clang diagnostics}, {Analyze code with Clang-Tidy and Clazy}, \sa {Configure Clang diagnostics}, {Analyze code with Clang-Tidy and Clazy},
{Speficy Clang tools settings} {Specify Clang tools settings}
*/ */
/*! /*!
@@ -311,5 +311,5 @@
file into the \uicontrol {Edit Checks as String} field, select additional file into the \uicontrol {Edit Checks as String} field, select additional
checks, and copy-paste the contents of the field to the .clang-tidy file. checks, and copy-paste the contents of the field to the .clang-tidy file.
\sa {Analyze code with Clang-Tidy and Clazy}, {Speficy Clang tools settings}, {Clang Tools} \sa {Analyze code with Clang-Tidy and Clazy}, {Specify Clang tools settings}, {Clang Tools}
*/ */

View File

@@ -22,7 +22,7 @@
{debuggers} and \l{Add Qt versions}{Qt versions}, in the Docker container {debuggers} and \l{Add Qt versions}{Qt versions}, in the Docker container
and creates kits for the devices. and creates kits for the devices.
You can use CMake or qmake to build applications in the Docker container. You are advised to use CMake to build applications in the Docker container.
To pull images from Docker hub or other registries, use the To pull images from Docker hub or other registries, use the
\l{https://docs.docker.com/engine/reference/commandline/pull/}{docker pull} \l{https://docs.docker.com/engine/reference/commandline/pull/}{docker pull}

View File

@@ -66,9 +66,6 @@
\section1 Set line annotation positions \section1 Set line annotation positions
To specify the position of the line annotations when looking at them in the
code editor, select \uicontrol {Annotation Settings} in the tooltip popup.
To specify the position where the annotations are displayed, go to To specify the position where the annotations are displayed, go to
\preferences > \uicontrol {Text Editor} > \preferences > \uicontrol {Text Editor} >
\uicontrol Display > \uicontrol {Line annotations}, and then select \uicontrol Display > \uicontrol {Line annotations}, and then select
@@ -82,17 +79,7 @@
If you hide the annotations, you can move the mouse pointer over an icon to If you hide the annotations, you can move the mouse pointer over an icon to
view them. view them.
\if defined(qtcreator) \sa {Analyze code with Clang-Tidy and Clazy}, {JavaScript and QML Checks}
\section1 Inspect QML and JavaScript
To inspect QML and JavaScript properties, methods, and enums, move the
cursor over them and go to \uicontrol Tools > \uicontrol {QML/JS} >
\uicontrol {Inspect API for Element Under Cursor}.
\sa {Clangd}
\endif
\sa {JavaScript and QML Checks}
*/ */
/*! /*!
@@ -760,24 +747,21 @@
\section1 Resetting the Code Model \section1 Resetting the Code Model
If you change the build and run kit when you have QML files open in the code If you see the following error messages after you add a new QML module,
editor, the code model might become corrupt. The following error message try building the project and then resetting the code model:
indicates that this might have happened: \e{Using Qt Quick 1 code model
instead of Qt Quick 2}.
To see the error message, move the mouse pointer over code that \list
\li QML module not found.
\li Unknown Component (M300).
\endlist
To see an error message, move the mouse pointer over code that
\QC underlines in the code editor or when you open a QML file in \QDS. \QC underlines in the code editor or when you open a QML file in \QDS.
To reset the code model, select \uicontrol Tools > \uicontrol {QML/JS} > To reset the code model, select \uicontrol Tools > \uicontrol {QML/JS} >
\uicontrol {Reset Code Model}. \uicontrol {Reset Code Model}.
\if defined(qtcreator) \sa {Check code syntax}, {Using QML Modules with Plugins}
If this does not help, try changing the QML emulation layer to the one that
was built with the same Qt version as the one selected in the build and run
kit.
\endif
\sa {Check code syntax}
*/ */
/*! /*!

View File

@@ -125,7 +125,7 @@
symbol support, which makes the results more reliable than before. symbol support, which makes the results more reliable than before.
\sa {Code Model}, {Clangd}, {Specify clangd settings}, \sa {Code Model}, {Clangd}, {Specify clangd settings},
{Speficy Clang tools settings}, {Use compilation databases} {Specify Clang tools settings}, {Use compilation databases}
*/ */
/*! /*!

View File

@@ -184,7 +184,8 @@
\title Move between files \title Move between files
The editor toolbar shows the file that is currently open (1) in the editor. The editor toolbar shows the name of the file that is currently open (1) in
the editor.
\image qtcreator-editor-open-files.webp {Current file shown on Edit mode toolbar} \image qtcreator-editor-open-files.webp {Current file shown on Edit mode toolbar}

View File

@@ -423,6 +423,12 @@
\uicontrol {Find References to Symbol Under Cursor}. \uicontrol {Find References to Symbol Under Cursor}.
\endlist \endlist
\section1 Inspect QML and JavaScript
To inspect QML and JavaScript properties, methods, and enums, place the
cursor over them and go to \uicontrol Tools > \uicontrol {QML/JS} >
\uicontrol {Inspect API for Element Under Cursor}.
\section1 Move between QML and C++ \section1 Move between QML and C++
To move to the C++ implementation of a QML type in the code editor, place the To move to the C++ implementation of a QML type in the code editor, place the
@@ -433,7 +439,8 @@
\li Go to \uicontrol {Follow Symbol Under Cursor} in the context menu. \li Go to \uicontrol {Follow Symbol Under Cursor} in the context menu.
\endlist \endlist
\sa {Edit Code}{How To: Edit Code}, {Edit Mode}, {Navigate with locator} \sa {Edit Code}{How To: Edit Code}, {Clangd}, {Edit Mode},
{Navigate with locator}
*/ */
/*! /*!

View File

@@ -60,7 +60,7 @@
To manage sessions, select \uicontrol File > \uicontrol Sessions > \uicontrol Manage. To manage sessions, select \uicontrol File > \uicontrol Sessions > \uicontrol Manage.
\image qtcreator-session-manager.png \image qtcreator-session-manager.png {Session Manager}
To save a session under a new name, select \uicontrol Clone. To save a session under a new name, select \uicontrol Clone.
@@ -97,7 +97,7 @@
\key Ctrl+Alt+<number>, where \e <number> is the number of the session to \key Ctrl+Alt+<number>, where \e <number> is the number of the session to
open (available for the first nine sessions). open (available for the first nine sessions).
\image qtcreator-welcome-session.png \image qtcreator-welcome-session.webp {Sessions in the Welcome mode}
To view more information about a session, select the down arrow icon that To view more information about a session, select the down arrow icon that
appears when you move the mouse cursor over the session name. Select actions appears when you move the mouse cursor over the session name. Select actions

View File

@@ -45,7 +45,7 @@
\uicontrol {New File} dialogs you can see an icon (1), a display name (2), \uicontrol {New File} dialogs you can see an icon (1), a display name (2),
and a description (3) of the wizard. and a description (3) of the wizard.
\image qtcreator-custom-wizard.png {Wizard details in the New Project dialog} \image qtcreator-custom-wizard.webp {Wizard details in the New File dialog}
In most project wizards, you can choose the build system to use for In most project wizards, you can choose the build system to use for
building the project: qmake, CMake, Qbs, and possibly others, depending on building the project: qmake, CMake, Qbs, and possibly others, depending on

View File

@@ -45,7 +45,7 @@
and \uicontrol {New File} dialogs. For each wizard, it shows an icon (1), a and \uicontrol {New File} dialogs. For each wizard, it shows an icon (1), a
display name (2), and a description (3). display name (2), and a description (3).
\image qtcreator-custom-wizard.png \image qtcreator-custom-wizard.webp {New File wizard}
\section1 Wizard Types \section1 Wizard Types

View File

@@ -83,7 +83,7 @@
\list \list
\li \l{Link projects to Axivion dashboards}{Axivion} \li \l{Link projects to Axivion dashboards}{Axivion}
\li \l{Specify clangd settings}{Clangd} \li \l{Specify clangd settings}{Clangd}
\li \l{Speficy Clang tools settings}{Clang Tools} \li \l{Specify Clang tools settings}{Clang Tools}
\li \l{Set Copilot preferences}{Copilot} \li \l{Set Copilot preferences}{Copilot}
\li \l{Specify code style}{C++ Code Style} \li \l{Specify code style}{C++ Code Style}
\li \l{Set C++ file naming preferences}{C++ File Naming} \li \l{Set C++ file naming preferences}{C++ File Naming}

View File

@@ -32,10 +32,10 @@
\section1 Run in Terminal \section1 Run in Terminal
For console applications, check the \uicontrol{Run in terminal} check box. For console applications, select \uicontrol{Run in terminal}.
To specify the terminal to use on Linux and \macos, select \preferences > To specify the terminal to use on Linux and \macos, go to \preferences >
\uicontrol Environment > \uicontrol System. To use an \l{Terminal} \uicontrol Environment > \uicontrol System. To use an \l{Terminal}
{internal terminal}, select \preferences > \uicontrol Terminal > {internal terminal}, go to \preferences > \uicontrol Terminal >
\uicontrol {Use internal terminal}. \uicontrol {Use internal terminal}.
\section1 Linker Libraries \section1 Linker Libraries
@@ -48,22 +48,21 @@
\c {make install}, and want to make sure that the deployed application will \c {make install}, and want to make sure that the deployed application will
find the libraries also when it is run without \QC. find the libraries also when it is run without \QC.
To disable library linking for the current project, deselect the To disable library linking for the current project, clear
\uicontrol {Add build library search path to PATH} check box. To disable \uicontrol {Add build library search path to PATH}. To disable
library linking for all projects, select \preferences > library linking for all projects, go to \preferences >
\uicontrol {Build & Run}, and then deselect the \uicontrol {Build & Run} and then clear
\uicontrol {Add linker library search paths to run environment} check box. \uicontrol {Add linker library search paths to run environment}.
\section1 \macos Options \section1 Debugging Linked Frameworks
The \uicontrol {Use debug version of frameworks (DYLD_IMAGE_SUFFIX=_debug)} option On \macos, select \uicontrol {Use debug version of frameworks (DYLD_IMAGE_SUFFIX=_debug)}
(only available on \macos) enables you to debug (for example, step into) to debug (for example, step into) linked frameworks, such as the Qt framework
linked frameworks, such as the Qt framework itself. You do not need this itself. You do not need this option for debugging your application code.
option for debugging your application code.
\section1 Linux Options \section1 Running as root User
On Linux, select the \uicontrol {Run as root user} check box to run the On Linux and \macos, select \uicontrol {Run as root user} to run the
application with root user permissions. application with root user permissions.
\sa {Configure projects for running}, {Specify a custom executable to run}, \sa {Configure projects for running}, {Specify a custom executable to run},

View File

@@ -30,7 +30,7 @@
\li In \uicontrol Projects > \uicontrol {Build & Run}, enable the kit \li In \uicontrol Projects > \uicontrol {Build & Run}, enable the kit
predefined for the device type (1). predefined for the device type (1).
\li Select the kit for the device in the kit selector (2). \li Select the kit for the device in the kit selector (2).
\image qtcreator-live-preview-kit.png \image qtcreator-kit-selector-devices.webp {Kit selector}
\else \else
\li In the bottom toolbar, select \inlineimage icons/settings.png \li In the bottom toolbar, select \inlineimage icons/settings.png
and enable the kit predefined for the device type. and enable the kit predefined for the device type.

View File

@@ -67,6 +67,11 @@
\li Import the module into the project, as instructed in \li Import the module into the project, as instructed in
\l {Importing QML Modules}. \l {Importing QML Modules}.
\endlist \endlist
\note If \QC cannot find the new QML module, build the project
and then go to \uicontrol {Tools} > \uicontrol {QML/JS} >
\uicontrol {Reset Code Model} to reset the code model.
\else \else
\li Build your module using the same Qt version and compiler as \QDS. \li Build your module using the same Qt version and compiler as \QDS.
For more information, see \l {Running QML Modules in Design Mode}. For more information, see \l {Running QML Modules in Design Mode}.
@@ -128,4 +133,6 @@
environment variable to check whether the plugin is currently being run environment variable to check whether the plugin is currently being run
by an application or edited in the \uicontrol Design mode. by an application or edited in the \uicontrol Design mode.
\endif \endif
\sa {Resetting the Code Model}
*/ */

View File

@@ -172,7 +172,7 @@
The \uicontrol Timeline view displays graphical representations of QML and The \uicontrol Timeline view displays graphical representations of QML and
JavaScript execution and a condensed view of all recorded events. JavaScript execution and a condensed view of all recorded events.
\image qtcreator-qml-performance-monitor.png "QML Profiler" \image qtcreator-qml-profiler.webp {QML Profiler}
Each row in the timeline (6) describes a type of QML events that were Each row in the timeline (6) describes a type of QML events that were
recorded. Move the cursor on an event on a row to see how long it takes and recorded. Move the cursor on an event on a row to see how long it takes and

View File

@@ -25,14 +25,14 @@
\image qtcreator-filesystem-view.webp {File System view in the sidebar} \image qtcreator-filesystem-view.webp {File System view in the sidebar}
\else \else
\image qtcreator-filesystem-view-design.png {File System view} \image qtcreator-filesystem-view-design.webp {File System view}
\endif \endif
To move to the root directory of the file system, select \uicontrol Computer To go to the root directory of the file system, select \uicontrol Computer
in the menu (1). Select \uicontrol Home to move to the user's home in the menu (1). Select \uicontrol Home to go to the user's home
directory. Further, you can select a project to move to an open project directory. Further, you can select a project to go to an open project
or \uicontrol Projects to move to the directory specified in the or \uicontrol Projects to go to the directory specified in
\uicontrol {Projects directory} field in \preferences > \uicontrol {Projects directory} in \preferences >
\uicontrol {Build & Run} > \uicontrol General. \uicontrol {Build & Run} > \uicontrol General.
The file that is currently active in the editor determines which folder The file that is currently active in the editor determines which folder
@@ -46,8 +46,8 @@
\endlist \endlist
To stop the synchronization between the editor and the To stop the synchronization between the editor and the
\uicontrol {File System} view, deselect the \inlineimage icons/linkicon.png \uicontrol {File System} view, clear \inlineimage icons/linkicon.png
(\uicontrol {Synchronize Root Directory with Editor}) button. (\uicontrol {Synchronize Root Directory with Editor}).
The view displays the path to the active file as bread crumbs. You can move The view displays the path to the active file as bread crumbs. You can move
to any directory along the path by clicking it. to any directory along the path by clicking it.
@@ -101,16 +101,15 @@
(\uicontrol Options): (\uicontrol Options):
\list \list
\li To hide the bread crumbs, deselect the \li To hide the bread crumbs, clear \uicontrol {Show Bread Crumbs}.
\uicontrol {Show Bread Crumbs} check box.
\li By default, the view separates folders from files and lists them \li By default, the view separates folders from files and lists them
first. To list all items in alphabetic order, deselect the first. To list all items in alphabetic order, clear
\uicontrol {Show Folders on Top} check box. \uicontrol {Show Folders on Top}.
\li To also show hidden files, select \uicontrol {Show Hidden Files}. \li To also show hidden files, select \uicontrol {Show Hidden Files}.
\endlist \endlist
To stop the synchronization with the file currently open in the To stop the synchronization with the file currently open in the
editor, deselect \inlineimage icons/linkicon.png editor, clear \inlineimage icons/linkicon.png
(\uicontrol {Synchronize with Editor}). (\uicontrol {Synchronize with Editor}).
\sa {View CMake project contents}, {Projects} \sa {View CMake project contents}, {Projects}

View File

@@ -15,7 +15,7 @@
Select views in the sidebar menu (1): Select views in the sidebar menu (1):
\image qtcreator-sidebar.png \image qtcreator-sidebar.webp {Views open in the sidebar}
You can change the view of the sidebars in the following ways: You can change the view of the sidebars in the following ways:

View File

@@ -18861,12 +18861,13 @@ Trotzdem fortfahren?</translation>
</message> </message>
<message> <message>
<source>Override cursors for views</source> <source>Override cursors for views</source>
<translation type="unfinished"></translation> <translation>Mauszeiger für Ansichten überschreiben</translation>
</message> </message>
<message> <message>
<source>Provide cursors for resizing views. <source>Provide cursors for resizing views.
If the system cursors for resizing views are not displayed properly, you can use the cursors provided by %1.</source> If the system cursors for resizing views are not displayed properly, you can use the cursors provided by %1.</source>
<translation type="unfinished"></translation> <translation>Benutzt separate Mauszeiger für das Verändern der Größe von Ansichten.
Wenn die Systemzeiger für das Verändern der Größe von Ansichten nicht korrekt dargestellt werden, können von %1 bereitgestellte Zeiger benutzt werden.</translation>
</message> </message>
<message> <message>
<source>Toolbar style:</source> <source>Toolbar style:</source>
@@ -18898,11 +18899,11 @@ If the system cursors for resizing views are not displayed properly, you can use
</message> </message>
<message> <message>
<source>The following environment variables are set and can influence the UI scaling behavior of %1:</source> <source>The following environment variables are set and can influence the UI scaling behavior of %1:</source>
<translation type="unfinished"></translation> <translation>Die folgenden Umgebungsvariablen sind gesetzt und können das Skalierungsverhalten der Benutzeroberfläche von %1 beeinflussen:</translation>
</message> </message>
<message> <message>
<source>Environment influences UI scaling behavior.</source> <source>Environment influences UI scaling behavior.</source>
<translation type="unfinished"></translation> <translation>Die Umgebung beeinflusst das Skalierungsverhalten der Benutzeroberfläche.</translation>
</message> </message>
<message> <message>
<source>Text codec for tools:</source> <source>Text codec for tools:</source>
@@ -19148,7 +19149,7 @@ If the system cursors for resizing views are not displayed properly, you can use
</message> </message>
<message> <message>
<source>This will hide the menu bar completely. You can show it again by typing %1.&lt;br&gt;&lt;br&gt;Or, trigger the &quot;%2&quot; action from the &quot;%3&quot; locator filter (%4).</source> <source>This will hide the menu bar completely. You can show it again by typing %1.&lt;br&gt;&lt;br&gt;Or, trigger the &quot;%2&quot; action from the &quot;%3&quot; locator filter (%4).</source>
<translation type="unfinished"></translation> <translation>Dies versteckt die Menüleiste vollständig. Sie können sie mit der Tastenkombination %1 wieder anzeigen.&lt;br&gt;&lt;br&gt;Oder führen Sie die Aktion &quot;%2&quot; über den Locator-Filter &quot;%3&quot; aus (%4).</translation>
</message> </message>
<message> <message>
<source>Change Log...</source> <source>Change Log...</source>
@@ -19471,7 +19472,7 @@ If the system cursors for resizing views are not displayed properly, you can use
</message> </message>
<message> <message>
<source>Copy and Close</source> <source>Copy and Close</source>
<translation type="unfinished"></translation> <translation>Kopieren und schließen</translation>
</message> </message>
<message> <message>
<source>&lt;br/&gt;From revision %1&lt;br/&gt;</source> <source>&lt;br/&gt;From revision %1&lt;br/&gt;</source>
@@ -20395,11 +20396,11 @@ Um es abzurufen, tippen Sie das Kürzel im Locator, gefolgt von einem Leerzeiche
</message> </message>
<message> <message>
<source>Cannot Create File</source> <source>Cannot Create File</source>
<translation type="unfinished"></translation> <translation>Datei konnte nicht erstellt werden</translation>
</message> </message>
<message> <message>
<source>Cannot create file &quot;%1&quot;.</source> <source>Cannot create file &quot;%1&quot;.</source>
<translation type="unfinished"></translation> <translation>Die Datei &quot;%1&quot; konnte nicht erstellt werden.</translation>
</message> </message>
<message> <message>
<source>Create Directory</source> <source>Create Directory</source>
@@ -20649,7 +20650,7 @@ Um es abzurufen, tippen Sie das Kürzel im Locator, gefolgt von einem Leerzeiche
</message> </message>
<message> <message>
<source>Show Paths in Relation to Active Project</source> <source>Show Paths in Relation to Active Project</source>
<translation type="unfinished"></translation> <translation>Pfade in Bezug auf das aktive Projekt anzeigen</translation>
</message> </message>
<message> <message>
<source>Filter Results</source> <source>Filter Results</source>
@@ -20665,7 +20666,7 @@ Um es abzurufen, tippen Sie das Kürzel im Locator, gefolgt von einem Leerzeiche
</message> </message>
<message> <message>
<source>Show Full Paths</source> <source>Show Full Paths</source>
<translation type="unfinished"></translation> <translation>Vollständigen Pfad anzeigen</translation>
</message> </message>
<message> <message>
<source>Search Results</source> <source>Search Results</source>
@@ -20833,11 +20834,11 @@ Möchten Sie es beenden?</translation>
</message> </message>
<message> <message>
<source>Proxy Authentication Required</source> <source>Proxy Authentication Required</source>
<translation type="unfinished"></translation> <translation>Proxy-Authentifizierung erforderlich</translation>
</message> </message>
<message> <message>
<source>Do not ask again.</source> <source>Do not ask again.</source>
<translation type="unfinished"></translation> <translation>Nicht noch einmal nachfragen.</translation>
</message> </message>
<message> <message>
<source>No themes found in installation.</source> <source>No themes found in installation.</source>
@@ -20921,7 +20922,7 @@ Möchten Sie es beenden?</translation>
</message> </message>
<message> <message>
<source>Convert string to pure ASCII.</source> <source>Convert string to pure ASCII.</source>
<translation type="unfinished"></translation> <translation>Zeichenkette in reines ASCII umwandeln.</translation>
</message> </message>
<message> <message>
<source>Create Folder</source> <source>Create Folder</source>
@@ -29868,7 +29869,7 @@ Versuchen Sie, das Projekt neu zu erstellen.</translation>
</message> </message>
<message> <message>
<source>Plugin Details of %1</source> <source>Plugin Details of %1</source>
<translation type="unfinished">Beschreibung zu %1</translation> <translation>Beschreibung zu %1</translation>
</message> </message>
<message> <message>
<source>Group:</source> <source>Group:</source>
@@ -30137,7 +30138,7 @@ Grund: %3</translation>
<message> <message>
<source>%1 (deprecated)</source> <source>%1 (deprecated)</source>
<extracomment>%1 is a plugin name</extracomment> <extracomment>%1 is a plugin name</extracomment>
<translation type="unfinished"></translation> <translation>%1 (veraltet)</translation>
</message> </message>
<message> <message>
<source>%1 (experimental)</source> <source>%1 (experimental)</source>
@@ -30212,7 +30213,7 @@ zu deaktivieren, deaktiviert auch die folgenden Plugins:
</message> </message>
<message> <message>
<source>Details</source> <source>Details</source>
<translation type="unfinished">Details</translation> <translation>Details</translation>
</message> </message>
<message> <message>
<source>The following plugins have errors and cannot be loaded:</source> <source>The following plugins have errors and cannot be loaded:</source>
@@ -30228,7 +30229,7 @@ zu deaktivieren, deaktiviert auch die folgenden Plugins:
</message> </message>
<message> <message>
<source>Multiple versions of the same plugin have been found.</source> <source>Multiple versions of the same plugin have been found.</source>
<translation type="unfinished"></translation> <translation>Es wurden mehrere Versionen des gleichen Plugins gefunden.</translation>
</message> </message>
<message> <message>
<source>%1 &gt; About Plugins</source> <source>%1 &gt; About Plugins</source>
@@ -56353,7 +56354,7 @@ Die Trace-Daten sind verloren.</translation>
</message> </message>
<message> <message>
<source>The command &quot;%1&quot; was canceled after %2 ms.</source> <source>The command &quot;%1&quot; was canceled after %2 ms.</source>
<translation type="unfinished"></translation> <translation>Das Kommando &quot;%1&quot; wurde nach %2 ms abgebrochen.</translation>
</message> </message>
<message> <message>
<source>Invalid command</source> <source>Invalid command</source>
@@ -56397,7 +56398,7 @@ Die Trace-Daten sind verloren.</translation>
</message> </message>
<message> <message>
<source>Failed to start terminal process. The stub exited before the inferior was started.</source> <source>Failed to start terminal process. The stub exited before the inferior was started.</source>
<translation type="unfinished"></translation> <translation>Der Terminalprozess konnte nicht gestartet werden. Der Kontrollprozess wurde beendet, bevor der Unterprozess gestartet werden konnte.</translation>
</message> </message>
<message> <message>
<source>Cannot set permissions on temporary directory &quot;%1&quot;: %2</source> <source>Cannot set permissions on temporary directory &quot;%1&quot;: %2</source>
@@ -56437,7 +56438,7 @@ Die Trace-Daten sind verloren.</translation>
</message> </message>
<message> <message>
<source>Refusing to remove the standard directory &quot;%1&quot;.</source> <source>Refusing to remove the standard directory &quot;%1&quot;.</source>
<translation type="unfinished"></translation> <translation>Das Standardverzeichnis &quot;%1&quot; kann nicht entfernt werden.</translation>
</message> </message>
<message> <message>
<source>Refusing to remove root directory.</source> <source>Refusing to remove root directory.</source>
@@ -56496,7 +56497,7 @@ Die Trace-Daten sind verloren.</translation>
</message> </message>
<message> <message>
<source>Device is not connected</source> <source>Device is not connected</source>
<translation type="unfinished"></translation> <translation>Gerät ist nicht verbunden</translation>
</message> </message>
<message> <message>
<source>Failed reading file &quot;%1&quot;: %2</source> <source>Failed reading file &quot;%1&quot;: %2</source>
@@ -56552,7 +56553,7 @@ Die Trace-Daten sind verloren.</translation>
</message> </message>
<message> <message>
<source>Cannot create temporary file %1: %2</source> <source>Cannot create temporary file %1: %2</source>
<translation type="unfinished"></translation> <translation>Die temporäre Datei &quot;%1&quot; konnte nicht erstellt werden: %2</translation>
</message> </message>
<message> <message>
<source>Overwrite File?</source> <source>Overwrite File?</source>
@@ -58991,7 +58992,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message> </message>
<message> <message>
<source>Welcome to %1</source> <source>Welcome to %1</source>
<translation type="unfinished"></translation> <translation>Willkommen bei %1</translation>
</message> </message>
<message> <message>
<source>Create Project...</source> <source>Create Project...</source>
@@ -59003,7 +59004,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message> </message>
<message> <message>
<source>Explore more</source> <source>Explore more</source>
<translation type="unfinished"></translation> <translation>Erfahre mehr</translation>
</message> </message>
<message> <message>
<source>Get Started</source> <source>Get Started</source>

View File

@@ -109,6 +109,11 @@ const QLatin1String X86ToolsPrefix("i686-linux-android");
const QLatin1String AArch64ToolsPrefix("aarch64-linux-android"); const QLatin1String AArch64ToolsPrefix("aarch64-linux-android");
const QLatin1String X86_64ToolsPrefix("x86_64-linux-android"); const QLatin1String X86_64ToolsPrefix("x86_64-linux-android");
const QLatin1String ArmToolsDisplayName("arm");
const QLatin1String X86ToolsDisplayName("i686");
const QLatin1String AArch64ToolsDisplayName("aarch64");
const QLatin1String X86_64ToolsDisplayName("x86_64");
const QLatin1String Unknown("unknown"); const QLatin1String Unknown("unknown");
const QLatin1String keytoolName("keytool"); const QLatin1String keytoolName("keytool");
const Key changeTimeStamp("ChangeTimeStamp"); const Key changeTimeStamp("ChangeTimeStamp");
@@ -177,12 +182,12 @@ QLatin1String AndroidConfig::displayName(const Abi &abi)
switch (abi.architecture()) { switch (abi.architecture()) {
case Abi::ArmArchitecture: case Abi::ArmArchitecture:
if (abi.wordWidth() == 64) if (abi.wordWidth() == 64)
return QLatin1String(Constants::AArch64ToolsDisplayName); return AArch64ToolsDisplayName;
return QLatin1String(Constants::ArmToolsDisplayName); return ArmToolsDisplayName;
case Abi::X86Architecture: case Abi::X86Architecture:
if (abi.wordWidth() == 64) if (abi.wordWidth() == 64)
return QLatin1String(Constants::X86_64ToolsDisplayName); return X86_64ToolsDisplayName;
return QLatin1String(Constants::X86ToolsDisplayName); return X86ToolsDisplayName;
default: default:
return Unknown; return Unknown;
} }

View File

@@ -81,11 +81,4 @@ const char ndkPackageName[] = "ndk";
const char platformsPackageName[] = "platforms"; const char platformsPackageName[] = "platforms";
const char buildToolsPackageName[] = "build-tools"; const char buildToolsPackageName[] = "build-tools";
// For AndroidQtVersion
const char ArmToolsDisplayName[] = "arm";
const char ArmV7ToolsDisplayName[] = "armv7";
const char X86ToolsDisplayName[] = "i686";
const char AArch64ToolsDisplayName[] = "aarch64";
const char X86_64ToolsDisplayName[] = "x86_64";
} // Android::Constants } // Android::Constants

View File

@@ -109,24 +109,13 @@ QString AndroidQtVersion::description() const
const QStringList &AndroidQtVersion::androidAbis() const const QStringList &AndroidQtVersion::androidAbis() const
{ {
if (m_androidAbis.isEmpty()) { ensureMkSpecParsed();
bool sanityCheckNotUsed;
const BuiltWith bw = builtWith(&sanityCheckNotUsed);
if (!bw.androidAbi.isEmpty()) {
m_androidAbis << bw.androidAbi;
m_minNdk = bw.apiVersion;
} else {
ensureMkSpecParsed();
}
}
return m_androidAbis; return m_androidAbis;
} }
int AndroidQtVersion::minimumNDK() const int AndroidQtVersion::minimumNDK() const
{ {
if (m_minNdk == -1) ensureMkSpecParsed();
ensureMkSpecParsed();
return m_minNdk; return m_minNdk;
} }
@@ -185,25 +174,6 @@ static int versionFromPlatformString(const QString &string, bool *ok = nullptr)
return match.hasMatch() ? match.captured(1).toInt(ok) : -1; return match.hasMatch() ? match.captured(1).toInt(ok) : -1;
} }
static QString abiFromCompilerTarget(const QString &string)
{
const QStringList components = string.split("-");
if (components.isEmpty())
return {};
QString qtAbi;
const QString compilerAbi = components.first();
if (compilerAbi == Constants::AArch64ToolsDisplayName)
qtAbi = ProjectExplorer::Constants::ANDROID_ABI_ARM64_V8A;
else if (compilerAbi == Constants::ArmV7ToolsDisplayName)
qtAbi = ProjectExplorer::Constants::ANDROID_ABI_ARMEABI_V7A;
else if (compilerAbi == Constants::X86_64ToolsDisplayName)
qtAbi = ProjectExplorer::Constants::ANDROID_ABI_X86_64;
else if (compilerAbi == Constants::X86ToolsDisplayName)
qtAbi = ProjectExplorer::Constants::ANDROID_ABI_X86;
return qtAbi;
}
AndroidQtVersion::BuiltWith AndroidQtVersion::parseBuiltWith(const QByteArray &modulesCoreJsonData, AndroidQtVersion::BuiltWith AndroidQtVersion::parseBuiltWith(const QByteArray &modulesCoreJsonData,
bool *ok) bool *ok)
{ {
@@ -223,10 +193,6 @@ AndroidQtVersion::BuiltWith AndroidQtVersion::parseBuiltWith(const QByteArray &m
result.ndkVersion = QVersionNumber::fromString(version.toString()); result.ndkVersion = QVersionNumber::fromString(version.toString());
} }
} }
if (const QJsonValue compilerTarget = builtWith["compiler_target"];
!compilerTarget.isUndefined()) {
result.androidAbi = abiFromCompilerTarget(compilerTarget.toString());
}
} }
if (ok) if (ok)

View File

@@ -35,7 +35,6 @@ public:
struct BuiltWith { struct BuiltWith {
int apiVersion = -1; int apiVersion = -1;
QVersionNumber ndkVersion; QVersionNumber ndkVersion;
QString androidAbi;
}; };
static BuiltWith parseBuiltWith(const QByteArray &modulesCoreJsonData, bool *ok = nullptr); static BuiltWith parseBuiltWith(const QByteArray &modulesCoreJsonData, bool *ok = nullptr);
BuiltWith builtWith(bool *ok = nullptr) const; BuiltWith builtWith(bool *ok = nullptr) const;

View File

@@ -235,7 +235,7 @@ public:
}).link; }).link;
Project *project = ProjectManager::startupProject(); Project *project = ProjectManager::startupProject();
FilePath baseDir = project ? project->projectDirectory() : FilePath{}; FilePath baseDir = project ? project->projectDirectory() : FilePath{};
link.targetFilePath = baseDir.resolvePath(link.targetFilePath); link.targetFilePath = findFileForIssuePath(link.targetFilePath);
if (link.targetFilePath.exists()) if (link.targetFilePath.exists())
EditorManager::openEditorAt(link); EditorManager::openEditorAt(link);
} }
@@ -736,6 +736,10 @@ public:
if (auto issues = static_cast<IssuesWidget *>(m_outputWidget->widget(1))) if (auto issues = static_cast<IssuesWidget *>(m_outputWidget->widget(1)))
issues->updateUi(); issues->updateUi();
}); });
auto *butonGroup = new QButtonGroup(this);
butonGroup->addButton(m_showDashboard);
butonGroup->addButton(m_showIssues);
butonGroup->setExclusive(true);
connect(m_outputWidget, &QStackedWidget::currentChanged, this, [this](int idx) { connect(m_outputWidget, &QStackedWidget::currentChanged, this, [this](int idx) {
m_showDashboard->setChecked(idx == 0); m_showDashboard->setChecked(idx == 0);

View File

@@ -36,6 +36,7 @@
#include <utils/async.h> #include <utils/async.h>
#include <utils/checkablemessagebox.h> #include <utils/checkablemessagebox.h>
#include <utils/environment.h> #include <utils/environment.h>
#include <utils/fileinprojectfinder.h>
#include <utils/networkaccessmanager.h> #include <utils/networkaccessmanager.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <utils/utilsicons.h> #include <utils/utilsicons.h>
@@ -236,6 +237,8 @@ public:
TaskTreeRunner m_taskTreeRunner; TaskTreeRunner m_taskTreeRunner;
std::unordered_map<IDocument *, std::unique_ptr<TaskTree>> m_docMarksTrees; std::unordered_map<IDocument *, std::unique_ptr<TaskTree>> m_docMarksTrees;
TaskTreeRunner m_issueInfoRunner; TaskTreeRunner m_issueInfoRunner;
FileInProjectFinder m_fileFinder; // FIXME maybe obsolete when path mapping is implemented
QMetaObject::Connection m_fileFinderConnection;
}; };
static AxivionPluginPrivate *dd = nullptr; static AxivionPluginPrivate *dd = nullptr;
@@ -330,17 +333,24 @@ void AxivionPluginPrivate::onStartupProjectChanged(Project *project)
return; return;
if (m_project) if (m_project)
disconnect(m_project, &Project::fileListChanged, this, &AxivionPluginPrivate::handleOpenedDocs); disconnect(m_fileFinderConnection);
m_project = project; m_project = project;
clearAllMarks(); clearAllMarks();
m_currentProjectInfo = {}; m_currentProjectInfo = {};
updateDashboard(); updateDashboard();
if (!m_project) if (!m_project) {
m_fileFinder.setProjectDirectory({});
m_fileFinder.setProjectFiles({});
return; return;
}
connect(m_project, &Project::fileListChanged, this, &AxivionPluginPrivate::handleOpenedDocs); m_fileFinder.setProjectDirectory(m_project->projectDirectory());
m_fileFinderConnection = connect(m_project, &Project::fileListChanged, this, [this] {
m_fileFinder.setProjectFiles(m_project->files(Project::AllFiles));
handleOpenedDocs();
});
const AxivionProjectSettings *projSettings = AxivionProjectSettings::projectSettings(m_project); const AxivionProjectSettings *projSettings = AxivionProjectSettings::projectSettings(m_project);
fetchProjectInfo(projSettings->dashboardProjectName()); fetchProjectInfo(projSettings->dashboardProjectName());
} }
@@ -961,7 +971,7 @@ void AxivionPluginPrivate::handleAnchorClicked(const QUrl &url)
return; return;
Link link; Link link;
if (const QString path = query.queryItemValue("filename", QUrl::FullyDecoded); !path.isEmpty()) if (const QString path = query.queryItemValue("filename", QUrl::FullyDecoded); !path.isEmpty())
link.targetFilePath = m_project->projectDirectory().pathAppended(path); link.targetFilePath = findFileForIssuePath(FilePath::fromUserInput(path));
if (const QString line = query.queryItemValue("line"); !line.isEmpty()) if (const QString line = query.queryItemValue("line"); !line.isEmpty())
link.targetLine = line.toInt(); link.targetLine = line.toInt();
// column entry is wrong - so, ignore it // column entry is wrong - so, ignore it
@@ -1040,6 +1050,15 @@ const std::optional<DashboardInfo> currentDashboardInfo()
return dd->m_dashboardInfo; return dd->m_dashboardInfo;
} }
Utils::FilePath findFileForIssuePath(const Utils::FilePath &issuePath)
{
QTC_ASSERT(dd, return {});
const FilePaths result = dd->m_fileFinder.findFile(QUrl::fromLocalFile(issuePath.toString()));
if (result.size() == 1)
return dd->m_project->projectDirectory().resolvePath(result.first());
return {};
}
} // Axivion::Internal } // Axivion::Internal
#include "axivionplugin.moc" #include "axivionplugin.moc"

View File

@@ -79,5 +79,7 @@ void fetchIssueInfo(const QString &id);
const std::optional<DashboardInfo> currentDashboardInfo(); const std::optional<DashboardInfo> currentDashboardInfo();
Utils::FilePath findFileForIssuePath(const Utils::FilePath &issuePath);
} // Axivion::Internal } // Axivion::Internal

View File

@@ -7,6 +7,8 @@
#include "axivionsettings.h" #include "axivionsettings.h"
#include "axiviontr.h" #include "axiviontr.h"
#include <coreplugin/find/itemviewfind.h>
#include <projectexplorer/project.h> #include <projectexplorer/project.h>
#include <projectexplorer/projectpanelfactory.h> #include <projectexplorer/projectpanelfactory.h>
#include <projectexplorer/projectsettingswidget.h> #include <projectexplorer/projectsettingswidget.h>
@@ -141,7 +143,7 @@ AxivionProjectSettingsWidget::AxivionProjectSettingsWidget(Project *project)
noMargin, noMargin,
m_linkedProject, m_linkedProject,
Tr::tr("Dashboard projects:"), Tr::tr("Dashboard projects:"),
m_dashboardProjects, Core::ItemViewFind::createSearchableWrapper(m_dashboardProjects),
m_infoLabel, m_infoLabel,
Row { m_fetchProjects, m_link, m_unlink, st } Row { m_fetchProjects, m_link, m_unlink, st }
}.attachTo(this); }.attachTo(this);

View File

@@ -234,7 +234,7 @@ void PyDapEngine::setupEngine()
info.addCustomButton(Tr::tr("Install debugpy"), [this] { info.addCustomButton(Tr::tr("Install debugpy"), [this] {
Core::ICore::infoBar()->removeInfo(installDebugPyInfoBarId); Core::ICore::infoBar()->removeInfo(installDebugPyInfoBarId);
Core::ICore::infoBar()->globallySuppressInfo(installDebugPyInfoBarId); Core::ICore::infoBar()->globallySuppressInfo(installDebugPyInfoBarId);
const FilePath target = packageDir(runParameters().interpreter, "dubugpy"); const FilePath target = packageDir(runParameters().interpreter, "debugpy");
QTC_ASSERT(target.isSameDevice(runParameters().interpreter), return); QTC_ASSERT(target.isSameDevice(runParameters().interpreter), return);
m_installProcess.reset(new Process); m_installProcess.reset(new Process);
m_installProcess->setCommand( m_installProcess->setCommand(
@@ -244,7 +244,8 @@ void PyDapEngine::setupEngine()
"install", "install",
"-t", "-t",
target.needsDevice() ? target.path() : target.toUserOutput(), target.needsDevice() ? target.path() : target.toUserOutput(),
"debugpy"}}); "debugpy",
"--upgrade"}});
m_installProcess->setTerminalMode(TerminalMode::Run); m_installProcess->setTerminalMode(TerminalMode::Run);
m_installProcess->start(); m_installProcess->start();
}); });

View File

@@ -294,7 +294,9 @@ bool QmlJSHoverHandler::matchColorItem(const ScopeChain &scopeChain,
if (auto binding = AST::cast<const AST::UiScriptBinding *>(member)) { if (auto binding = AST::cast<const AST::UiScriptBinding *>(member)) {
if (binding->qualifiedId && posIsInSource(pos, binding->statement)) { if (binding->qualifiedId && posIsInSource(pos, binding->statement)) {
value = scopeChain.evaluate(binding->qualifiedId); value = scopeChain.evaluate(binding->qualifiedId);
if (value && value->asColorValue()) { if (value && (value->asColorValue()
|| (value->asCppComponentValue()
&& value->asCppComponentValue()->className() == "color"))) {
color = textAt(qmlDocument, color = textAt(qmlDocument,
binding->statement->firstSourceLocation(), binding->statement->firstSourceLocation(),
binding->statement->lastSourceLocation()); binding->statement->lastSourceLocation());

View File

@@ -431,11 +431,13 @@ TextEditorSettings::TextEditorSettings()
connect(this, &TextEditorSettings::fontSettingsChanged, connect(this, &TextEditorSettings::fontSettingsChanged,
this, updateGeneralMessagesFontSettings); this, updateGeneralMessagesFontSettings);
updateGeneralMessagesFontSettings(); updateGeneralMessagesFontSettings();
connect(this, &TextEditorSettings::behaviorSettingsChanged, auto updateBehaviorSettings = [](const BehaviorSettings &bs) {
this, [](const BehaviorSettings &bs) {
Core::MessageManager::setWheelZoomEnabled(bs.m_scrollWheelZooming); Core::MessageManager::setWheelZoomEnabled(bs.m_scrollWheelZooming);
FancyLineEdit::setCamelCaseNavigationEnabled(bs.m_camelCaseNavigation); FancyLineEdit::setCamelCaseNavigationEnabled(bs.m_camelCaseNavigation);
}); };
connect(this, &TextEditorSettings::behaviorSettingsChanged,
this, updateBehaviorSettings);
updateBehaviorSettings(globalBehaviorSettings());
} }
TextEditorSettings::~TextEditorSettings() TextEditorSettings::~TextEditorSettings()

View File

@@ -110,7 +110,7 @@ def textUnderCursor(window, fromPos, toPos):
cursor.movePosition(toPos, QTextCursor.KeepAnchor) cursor.movePosition(toPos, QTextCursor.KeepAnchor)
returnValue = cursor.selectedText() returnValue = cursor.selectedText()
cursor.setPosition(oldposition) cursor.setPosition(oldposition)
return returnValue return str(returnValue)
def which(program): def which(program):
# Don't use spawn.find_executable because it can't find .bat or # Don't use spawn.find_executable because it can't find .bat or

View File

@@ -34,8 +34,10 @@ def main():
doubleClick(manualQMIObj, 5, 5, 0, Qt.LeftButton) doubleClick(manualQMIObj, 5, 5, 0, Qt.LeftButton)
if not waitFor("not manualQMIObj.collapsed", 2000): if not waitFor("not manualQMIObj.collapsed", 2000):
test.warning("It takes more than two seconds to expand the help content tree.") test.warning("It takes more than two seconds to expand the help content tree.")
gettingStartedQModelIndex = getQModelIndexStr("text='Getting Started'", manualQModelIndex) devQModelIndex = getQModelIndexStr("text='Developing with Qt Creator'", manualQModelIndex)
doubleClick(gettingStartedQModelIndex, 5, 5, 0, Qt.LeftButton) doubleClick(devQModelIndex)
gettingStartedQModelIndex = getQModelIndexStr("text='Getting Started'", devQModelIndex)
doubleClick(gettingStartedQModelIndex)
pageTitle = "Configuring Qt Creator" pageTitle = "Configuring Qt Creator"
mouseClick(waitForObject(getQModelIndexStr("text='%s'" % pageTitle, mouseClick(waitForObject(getQModelIndexStr("text='%s'" % pageTitle,
gettingStartedQModelIndex))) gettingStartedQModelIndex)))

View File

@@ -41,6 +41,8 @@ def __checkKits__():
internalClangExe += ".exe" internalClangExe += ".exe"
internalClangExe = os.path.realpath(internalClangExe) # clean symlinks internalClangExe = os.path.realpath(internalClangExe) # clean symlinks
if os.path.exists(internalClangExe): if os.path.exists(internalClangExe):
if platform.system() in ("Microsoft", "Windows"):
expectedCompilers.append({'^Default LLVM \d{2} bit based on MSVC\d{4}$' : ''})
expectedCompilers.append(internalClangExe) expectedCompilers.append(internalClangExe)
foundCompilers = [] foundCompilers = []
foundCompilerNames = [] foundCompilerNames = []
@@ -269,6 +271,13 @@ def __getExpectedDebuggers__():
result = [] result = []
if platform.system() in ('Microsoft', 'Windows'): if platform.system() in ('Microsoft', 'Windows'):
result.extend(__getCDB__()) result.extend(__getCDB__())
try:
qcBinPath = currentApplicationContext().commandLine.split('qtcreator.exe', 1)[0]
lldb = os.path.join(qcBinPath, 'clang', 'bin', 'lldb.exe')
if os.path.exists(lldb):
result.append(lldb)
except:
test.warning('Failed to handled internally provided lldb.')
exeSuffix = ".exe" exeSuffix = ".exe"
for debugger in ["gdb", "lldb"]: for debugger in ["gdb", "lldb"]:
result.extend(findAllFilesInPATH(debugger + exeSuffix)) result.extend(findAllFilesInPATH(debugger + exeSuffix))
@@ -330,6 +339,11 @@ def __compareCompilers__(foundCompilers, expectedCompilers):
or currentFound.values() == currentExp.values()): or currentFound.values() == currentExp.values()):
foundExp = True foundExp = True
break break
if isWin and key.startswith('^Default LLVM'):
if re.match(key, next(iter(currentFound.keys())), flags):
# TODO we may want to check that it's configured with latest MSVC?
foundExp = True
break
equal = foundExp equal = foundExp
else: else:
if isWin: if isWin: