Merge remote-tracking branch 'origin/13.0'
Change-Id: I12578a55fb61a3a9620c749c0b3bbbae6dcb4493
3
dist/changelog/changes-13.0.0.md
vendored
@@ -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
|
||||||
|
@@ -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>
|
||||||
|
Before Width: | Height: | Size: 12 KiB |
BIN
doc/qtcreator/images/qtcreator-custom-wizard.webp
Normal file
After Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 9.2 KiB |
BIN
doc/qtcreator/images/qtcreator-filesystem-view-design.webp
Normal file
After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 7.0 KiB |
BIN
doc/qtcreator/images/qtcreator-kit-selector-devices.webp
Normal file
After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 21 KiB |
BIN
doc/qtcreator/images/qtcreator-qml-profiler.webp
Normal file
After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 18 KiB |
BIN
doc/qtcreator/images/qtcreator-sidebar.webp
Normal file
After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 3.3 KiB |
BIN
doc/qtcreator/images/qtcreator-welcome-session.webp
Normal file
After Width: | Height: | Size: 2.2 KiB |
@@ -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
|
||||||
|
|
||||||
|
@@ -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}
|
||||||
*/
|
*/
|
||||||
|
@@ -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}
|
||||||
|
@@ -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}
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@@ -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}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@@ -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}
|
||||||
|
|
||||||
|
@@ -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}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
|
||||||
|
@@ -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}
|
||||||
|
@@ -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},
|
||||||
|
@@ -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.
|
||||||
|
@@ -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}
|
||||||
*/
|
*/
|
||||||
|
@@ -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
|
||||||
|
@@ -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}
|
||||||
|
@@ -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:
|
||||||
|
|
||||||
|
@@ -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.<br><br>Or, trigger the "%2" action from the "%3" locator filter (%4).</source>
|
<source>This will hide the menu bar completely. You can show it again by typing %1.<br><br>Or, trigger the "%2" action from the "%3" 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.<br><br>Oder führen Sie die Aktion "%2" über den Locator-Filter "%3" 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><br/>From revision %1<br/></source>
|
<source><br/>From revision %1<br/></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 "%1".</source>
|
<source>Cannot create file "%1".</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Die Datei "%1" 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 > About Plugins</source>
|
<source>%1 > About Plugins</source>
|
||||||
@@ -56353,7 +56354,7 @@ Die Trace-Daten sind verloren.</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>The command "%1" was canceled after %2 ms.</source>
|
<source>The command "%1" was canceled after %2 ms.</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Das Kommando "%1" 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 "%1": %2</source>
|
<source>Cannot set permissions on temporary directory "%1": %2</source>
|
||||||
@@ -56437,7 +56438,7 @@ Die Trace-Daten sind verloren.</translation>
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Refusing to remove the standard directory "%1".</source>
|
<source>Refusing to remove the standard directory "%1".</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation>Das Standardverzeichnis "%1" 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 "%1": %2</source>
|
<source>Failed reading file "%1": %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 "%1" 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>
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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
|
||||||
|
@@ -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)
|
||||||
|
@@ -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;
|
||||||
|
@@ -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);
|
||||||
|
@@ -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"
|
||||||
|
@@ -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
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
|
@@ -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();
|
||||||
});
|
});
|
||||||
|
@@ -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());
|
||||||
|
@@ -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()
|
||||||
|
@@ -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
|
||||||
|
@@ -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)))
|
||||||
|
@@ -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:
|
||||||
|