aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/qtcreator/images/qtcreator-preferences-vcs-general.webpbin5224 -> 4712 bytes
-rw-r--r--doc/qtcreator/src/editors/creator-only/creator-coding-edit-mode.qdoc2
-rw-r--r--doc/qtcreator/src/howto/creator-only/creator-how-to-install-extensions.qdoc7
-rw-r--r--doc/qtcreator/src/linux-mobile/linuxdev.qdoc68
-rw-r--r--doc/qtcreator/src/overview/creator-only/creator-keyboard-shortcuts.qdoc1547
-rw-r--r--doc/qtcreator/src/python/creator-python-development.qdoc2
-rw-r--r--doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets-ui.qdoc2
-rw-r--r--doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets.qdoc4
-rw-r--r--doc/qtcreator/src/python/creator-tutorial-python-application-qtquick.qdoc2
-rw-r--r--doc/qtcreator/src/vcs/creator-only/creator-vcs-preferences.qdoc12
-rw-r--r--share/qtcreator/translations/qtcreator_de.ts398
-rw-r--r--share/qtcreator/translations/qtcreator_fr.ts2306
-rw-r--r--src/app/main.cpp7
-rw-r--r--src/libs/3rdparty/libptyqt/conptyprocess.cpp67
-rw-r--r--src/libs/utils/fileutils.cpp2
-rw-r--r--src/libs/utils/icondisplay.cpp6
-rw-r--r--src/libs/utils/mimetypes2/mimedatabase.cpp21
-rw-r--r--src/libs/utils/qtcprocess.cpp11
-rw-r--r--src/libs/utils/stringutils.cpp206
-rw-r--r--src/plugins/axivion/axivionplugin.cpp11
-rw-r--r--src/plugins/coreplugin/icore.cpp10
-rw-r--r--src/plugins/coreplugin/iversioncontrol.h1
-rw-r--r--src/plugins/coreplugin/outputwindow.cpp29
-rw-r--r--src/plugins/coreplugin/outputwindow.h6
-rw-r--r--src/plugins/coreplugin/secretaspect.cpp8
-rw-r--r--src/plugins/cppeditor/cppfollowsymbolundercursor.cpp7
-rw-r--r--src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp2
-rw-r--r--src/plugins/cppeditor/insertionpointlocator.cpp7
-rw-r--r--src/plugins/cppeditor/quickfixes/insertfunctiondefinition.cpp2
-rw-r--r--src/plugins/cppeditor/quickfixes/movefunctiondefinition.cpp17
-rw-r--r--src/plugins/cppeditor/symbolfinder.h4
-rw-r--r--src/plugins/extensionmanager/extensionmanagerwidget.cpp37
-rw-r--r--src/plugins/git/gitclient.cpp42
-rw-r--r--src/plugins/git/gitclient.h1
-rw-r--r--src/plugins/git/gitplugin.cpp5
-rw-r--r--src/plugins/git/gitplugin.h1
-rw-r--r--src/plugins/lua/bindings/texteditor.cpp6
-rw-r--r--src/plugins/projectexplorer/kitmanagerconfigwidget.cpp5
-rw-r--r--src/plugins/projectexplorer/kitmanagerconfigwidget.h1
-rw-r--r--src/plugins/projectexplorer/kitoptionspage.cpp2
-rw-r--r--src/plugins/projectexplorer/projectmodels.cpp15
-rw-r--r--src/plugins/projectexplorer/projectmodels.h1
-rw-r--r--src/plugins/projectexplorer/toolchainoptionspage.cpp2
-rw-r--r--src/plugins/python/pythoneditor.cpp3
-rw-r--r--src/plugins/python/pythonlanguageclient.cpp4
-rw-r--r--src/plugins/qmlprofiler/quick3dframeview.cpp6
-rw-r--r--src/plugins/remotelinux/filesystemaccess_test.cpp21
-rw-r--r--src/plugins/texteditor/codeassist/codeassistant.cpp11
-rw-r--r--src/plugins/vcsbase/commonvcssettings.cpp7
-rw-r--r--src/plugins/vcsbase/commonvcssettings.h7
m---------src/shared/qbs0
-rw-r--r--tests/auto/utils/expander/tst_expander.cpp3
-rw-r--r--tests/auto/utils/stringutils/tst_stringutils.cpp12
-rw-r--r--tests/system/suite_editors/tst_delete_externally/test.py9
54 files changed, 3371 insertions, 1604 deletions
diff --git a/doc/qtcreator/images/qtcreator-preferences-vcs-general.webp b/doc/qtcreator/images/qtcreator-preferences-vcs-general.webp
index b6206a71d0f..a44987b8d6a 100644
--- a/doc/qtcreator/images/qtcreator-preferences-vcs-general.webp
+++ b/doc/qtcreator/images/qtcreator-preferences-vcs-general.webp
Binary files differ
diff --git a/doc/qtcreator/src/editors/creator-only/creator-coding-edit-mode.qdoc b/doc/qtcreator/src/editors/creator-only/creator-coding-edit-mode.qdoc
index b0899b70cf1..6afb21972d8 100644
--- a/doc/qtcreator/src/editors/creator-only/creator-coding-edit-mode.qdoc
+++ b/doc/qtcreator/src/editors/creator-only/creator-coding-edit-mode.qdoc
@@ -378,7 +378,7 @@
\image qtcreator-add-resource.png {Resource Browser}
- \sa {Edit Code}{How To: Edit Code}, {Edit Mode}, {Editing Keyboard Shortcuts},
+ \sa {Edit Code}{How To: Edit Code}, {Edit Mode}, {Editor Shortcuts},
{Navigate with locator}
*/
diff --git a/doc/qtcreator/src/howto/creator-only/creator-how-to-install-extensions.qdoc b/doc/qtcreator/src/howto/creator-only/creator-how-to-install-extensions.qdoc
index a09ec3f0672..7debf51c946 100644
--- a/doc/qtcreator/src/howto/creator-only/creator-how-to-install-extensions.qdoc
+++ b/doc/qtcreator/src/howto/creator-only/creator-how-to-install-extensions.qdoc
@@ -75,9 +75,10 @@
To install extensions to \QC:
\list 1
- \li Go to \preferences > \uicontrol Extensions.
- \image qtcreator-preferences-extensions.webp {Extensions in Preferences}
- \li Select \uicontrol {Install Extension}.
+ \li Go to \uicontrol Extensions.
+ \image qtcreator-extension-mode.webp {Extensions mode}
+ \li Select an extension.
+ \li Select \uicontrol {Install}.
\include creator-how-to-install-plugins.qdoc install-plugins
\endlist
diff --git a/doc/qtcreator/src/linux-mobile/linuxdev.qdoc b/doc/qtcreator/src/linux-mobile/linuxdev.qdoc
index 6691ca4b2c4..311b68a48b8 100644
--- a/doc/qtcreator/src/linux-mobile/linuxdev.qdoc
+++ b/doc/qtcreator/src/linux-mobile/linuxdev.qdoc
@@ -93,9 +93,6 @@
\li In \uicontrol {Run device type}, select
\uicontrol {Remote Linux Device}.
- \li To build on the remote device, select \uicontrol {Remote Linux Device}
- also in \uicontrol {Build device}.
-
\li To specify build settings:
\list 1
@@ -141,3 +138,68 @@
{Debug remotely with GDB}, {Developing for Remote Linux Devices},
{Remote Linux Deploy Configuration}
*/
+
+/*!
+ \page creator-how-to-build-on-remote-linux.html
+ \previouspage creator-how-tos.html
+
+ \ingroup creator-how-to-remote-linux
+
+ \title Build applications on remote Linux devices
+
+ In addition to building applications \e {for} a generic Linux device, you can
+ use the toolchain on the device to build the applications \e {on} the device.
+
+ To build applications on a remote Linux device:
+
+ \list 1
+
+ \li Go to \preferences > \uicontrol Devices > \uicontrol Devices, and
+ then select \uicontrol Add to add a remote Linux device.
+
+ \li Go to \preferences > \uicontrol CMake > \uicontrol {CMake Tools}, and
+ then select \uicontrol Add to add the path to the CMake executable
+ on the remote Linux device.
+
+ \li Go to \preferences > \uicontrol Kits > \uicontrol {Qt Versions},
+ and then select \uicontrol Add to add the Qt version on the remote
+ Linux device
+
+ \li Go to \preferences > \uicontrol Kits > \uicontrol Compilers, and
+ then select \uicontrol Add to add the the compiler on the remote
+ Linux device.
+
+ \li Go to \preferences > \uicontrol Kits, and then select \uicontrol Add
+ to add a kit for building for the device.
+
+ \li Select the device, CMake tool, Qt version, and compiler that you
+ added above.
+
+ \li In \uicontrol {Run device type} and \uicontrol {Build device}, select
+ \uicontrol {Remote Linux Device}.
+
+ \li To specify build settings:
+
+ \list 1
+
+ \li Open a project for an application you want to develop for the
+ device.
+
+ \li Select \uicontrol Projects > \uicontrol {Build & Run} to activate
+ the kit that you specified above.
+
+ \endlist
+
+ \li Select \uicontrol Run to specify run settings. Usually, you can use
+ the default settings.
+
+ When you run the project, \QC deploys the application as specified by
+ the deploy steps.
+
+ \endlist
+
+ \sa {Add CMake tools}, {Remote Linux}{How To: Develop for remote Linux},
+ {Manage Kits}{How To: Manage Kits}, {Developing for Remote Linux Devices},
+ {Remote Linux Deploy Configuration}, {Remote Linux Run Settings}
+*/
+
diff --git a/doc/qtcreator/src/overview/creator-only/creator-keyboard-shortcuts.qdoc b/doc/qtcreator/src/overview/creator-only/creator-keyboard-shortcuts.qdoc
index d15fc43003c..eea222ee4b9 100644
--- a/doc/qtcreator/src/overview/creator-only/creator-keyboard-shortcuts.qdoc
+++ b/doc/qtcreator/src/overview/creator-only/creator-keyboard-shortcuts.qdoc
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 The Qt Company Ltd.
+// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
// **********************************************************************
@@ -17,12 +17,17 @@
\brief Default keyboard shortcuts.
- \QC has various keyboard shortcuts that speed up your development process.
+ Keyboard shortcuts make application development faster.
To view all \QC functions and their keyboard shortcuts, select
\preferences > \uicontrol Environment > \uicontrol Keyboard.
\image qtcreator-keyboard-shortcuts.png
+ The tables in this topic list the default keyboard shortcuts. They are
+ categorized by actions.
+
+ \section1 Conflicting Shortcuts
+
Shortcuts that are displayed in red are associated with several functions.
\QC executes the function that is available in the current context.
If several functions are available for the same shortcut in the current context,
@@ -38,6 +43,8 @@
and therefore the default \QC keyboard shortcut \key F10 (Step Over) will not work on
that system.
+ \section1 Showing Shortcuts in Menus
+
To override the platform default value that determines whether
keyboard shortcuts are shown in the labels of context menu items,
select \preferences > \uicontrol Environment >
@@ -47,668 +54,1274 @@
\image qtcreator-preferences-environment-interface.webp {Interface tab in Environment preferences}
- The following tables list the default keyboard shortcuts. They are
- categorized by actions.
-
- \section1 General Keyboard Shortcuts
+ \section1 Top 5 General Shortcuts
\table
\header
- \li Action
- \li Keyboard shortcut
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Open file or project
- \li Ctrl+O
+ \li Return to the editor
+ \li Esc
+ \li Esc
\row
- \li New project
- \li Ctrl+Shift+N
+ \li Go to previous open document in history
+ \li Ctrl+Tab
+ \li Opt+Tab
\row
- \li New file
- \li Ctrl+N
+ \li Build project
+ \li Ctrl+B
+ \li Cmd+B
\row
- \li Open in external editor
- \li Alt+V, Alt+I
+ \li Run
+ \li Ctrl+R
+ \li Cmd+R
\row
- \li Select all
- \li Ctrl+A
+ \li Toggle output views
+ \li Alt+<number>
+
+ Where the number is the number of the view.
+ \li Cmd+<number>
+ \endtable
+
+ \section1 Top 5 Locator Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Delete
- \li Del
+ \li Activate \uicontrol Locator
+ \li Ctrl+K
+ \li Cmd+K
\row
- \li Cut
- \li Ctrl+X
+ \li Find a file
+ \li Ctrl+K, <text>
+ \li Cmd+K, <text>
\row
- \li Copy
- \li Ctrl+C
+ \li Start debugging a run configuration of the active project
+ \li Ctrl+K, dr
+ \li Cmd+K, dr
\row
- \li Paste
- \li Ctrl+V
+ \li Run a run configuration of the active project
+ \li Ctrl+K, rr
+ \li Cmd+K, rr
\row
- \li Redo
- \li Ctrl+Y
+ \li Trigger a menu item
+ \li Ctrl+Shift+K, <menu item name>
+ \li Cmd+Shift+K, <menu item name>
+ \endtable
+
+ \section1 Top 10 Editor Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Print
- \li Ctrl+P
+ \li Auto-indent selection
+ \li Ctrl+I
+ \li Cmd+I
\row
- \li Save
- \li Ctrl+S
+ \li Find references to symbol under cursor
+ \li Ctrl+Shift+U
+ \li Cmd+Shift+U
\row
- \li Save all
- \li Ctrl+Shift+S
+ \li Follow symbol under cursor
+ \li F2
+ \li F2
\row
- \li Close window
- \li Ctrl+W
+ \li Go to advanced find
+ \li Ctrl+Shift+F
+ \li Cmd+Shift+F
\row
- \li Close all
- \li Ctrl+Shift+W
+ \li Go to previous bookmark
+ \li Ctrl+,
+ \li Ctr+,
\row
- \li Close current file
- \li Ctrl+F4
+ \li Open type hierarchy
+ \li Ctrl+Shift+T
+ \li Ctrl+Shift+T
\row
- \li Go back
- \li Alt+Left
+ \li Paste from the clipboard history
+ \li Ctrl+Shift+V
+ \li Cmd+Shift+V
\row
- \li Go forward
- \li Alt+Right
+ \li Sort selected lines alphabetically
+ \li Alt+Shift+S
+ \li Ctrl+Shift+S
\row
- \li Go to line
- \li Ctrl+L
+ \li Switch between header and source file
+ \li F4
+ \li F4
\row
- \li Next open document in history
- \li Ctrl+Shift+Tab
+ \li Trigger a code completion in the current scope
+ \li Ctrl+Space
+ \li Ctrl+Space
+ \endtable
+
+ \section1 Top 5 Debugger Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Go to other split
- \li Ctrl+E, O
+ \li Start or continue debugging
+ \li F5
+ \li Cmd+Y
\row
- \li Previous open document in history
- \li Ctrl+Tab
+ \li Exit debugger
+ \li Shift+F5
+ \li Cmd+Shift+Y
\row
- \li Activate \uicontrol Locator
- \li Ctrl+K
+ \li Step over
+ \li F10
+ \li Cmd+Shift+0
\row
- \li Switch to \uicontrol Welcome mode
- \li Ctrl+1
+ \li Step into
+ \li F11
+ \li Cmd+Shift+I
\row
- \li Switch to \uicontrol Edit mode
- \li Ctrl+2
+ \li Step out
+ \li Shift+F11
+ \li Cmd+Shift+T
+ \endtable
+
+ \section1 Top 5 Git Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
+ \row
+ \li Diff
+ \li Alt+G, Alt+D
+ \li Ctrl+G, Ctrl+D
\row
- \li Switch to \uicontrol Design mode
- \li Ctrl+3
+ \li Diff project or repository
+ \li Alt+G, Alt+Shift+D
+ \li Ctrl+G, Ctrl+Shift+D
+ \row
+ \li Diff of current modified editor
+ \li Alt+H
+ \li Ctrl+H
\row
- \li Switch to \uicontrol Debug mode
- \li Ctrl+4
+ \li Git blame
+ \li Alt+G, Alt+B
+ \li Ctrl+G, Ctrl+B
\row
- \li Switch to \uicontrol Projects mode
- \li Ctrl+5
+ \li Git log repository
+ \li Alt+G, Alt+K
+ \li Ctrl+G, Ctrl+K
+ \endtable
+
+ \section1 General Keyboard Shortcuts
+
+ \section2 Document Navigation Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Switch to \uicontrol Extensions mode
- \li Ctrl+6
+ \li Go back
+ \li Alt+Left
+ \li Cmd+Opt+Left
\row
- \li Switch to \uicontrol Help mode
- \li Ctrl+7
+ \li Go forward
+ \li Alt+Right
+ \li Cmd+Opt+Right
\row
- \li Toggle \uicontrol{Issues}
- \li Alt+1 (Cmd+1 on \macos)
+ \li Go to line
+ \li Ctrl+L
+ \li Cmd+L
\row
- \li Toggle \uicontrol{Search Results}
- \li Alt+2 (Cmd+2 on \macos)
+ \li Go to next open document in history
+ \li Ctrl+Shift+Tab
+ \li Opt+Shift+Tab
\row
- \li Toggle \uicontrol{Application Output}
- \li Alt+3 (Cmd+3 on \macos)
+ \li Go to previous open document in history
+ \li Ctrl+Tab
+ \li Opt+Tab
\row
- \li Toggle \uicontrol{Compile Output}
- \li Alt+4 (Cmd+4 on \macos)
+ \li Go to next split or window
+ \li Ctrl+E, O
+ \li Ctrl+E, O
+ \endtable
+
+ \section2 Exit \QC
+
+ By default, \QC exits without asking for confirmation, unless there are
+ unsaved changes in open files. To always be asked, go to \preferences >
+ \uicontrol Environment > \uicontrol System and then select
+ \uicontrol {Ask for confirmation before exiting}.
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Toggle other output views
- \li Alt+number (Cmd+number on \macos)
+ \li Exit \QC
+ \li Ctrl+Q
+ \li Cmd+Q
+ \endtable
- Where the number is the number of the view.
+ \section2 File Management Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Activate \uicontrol Bookmarks view
- \li Alt+M
+ \li Open file or project
+ \li Ctrl+O
+ \li Cmd+O
\row
- \li Activate \uicontrol{File System} view
- \li Alt+Y
+ \li Open in a new window
+ \li Ctrl+E, 4
+ \li Ctrl+E, 4
\row
- \li Activate \uicontrol{Open Documents} view
- \li Alt+O
+ \li New project
+ \li Ctrl+Shift+N
+ \li Cmd+Shift+N
\row
- \li Maximize output views
- \li Alt+Shift+9
+ \li New file
+ \li Ctrl+N
+ \li Cmd+N
\row
- \li Move to next item in output
- \li F6
+ \li Save current document
+ \li Ctrl+S
+ \li Cmd+S
\row
- \li Move to previous item in output
- \li Shift+F6
+ \li Save all documents
+ \li Ctrl+Shift+S
+ \li \e {None}
\row
- \li Activate \uicontrol Projects view
- \li Alt+X
+ \li Close current editor
+ \li Ctrl+W
+ \li Cmd+W
\row
- \li Full screen
- \li Ctrl+Shift+F11
+ \li Close all editors
+ \li Ctrl+Shift+W
+ \li Cmd+Shift+W
+ \endtable
+
+ \section2 Find-and-Replace Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Toggle the sidebar
- \li Alt+0 (Cmd+0 on \macos)
+ \li Activate \uicontrol Locator
+ \li Ctrl+K
+ \li Cmd+K
\row
- \li Undo
- \li Ctrl+Z
+ \li Find and replace
+ \li Ctrl+F
+ \li Cmd+F
\row
- \li Move to \uicontrol Edit mode
-
- In \uicontrol Edit mode:
- \list
- \li The first press moves focus to the editor
- \li The second press closes secondary windows
- \endlist
- \li Esc
+ \li Find next
+ \li F3
+ \li Cmd+G
\row
- \li Exit \QC
-
- By default, \QC exits without asking for confirmation, unless
- there are unsaved changes in open files. To always be asked,
- select the \uicontrol {Ask for confirmation before exiting}
- check box in \preferences > \uicontrol Environment >
- \uicontrol System.
- \li Ctrl+Q
+ \li Find previous
+ \li Shift+F3
+ \li Ctrl+Shift+G
+ \row
+ \li Find next occurrence of selected text
+ \li Ctrl+F3
+ \li Cmd+F3
+ \row
+ \li Find previous occurrence of selected text
+ \li Cmd+Shift+F3
+ \li \e {None}
+ \row
+ \li Replace next
+ \li Ctrl+=
+ \li Cmd+=
+ \row
+ \li Open advanced find
+ \li Ctrl+Shift+F
+ \li Cmd+Shift+F
\endtable
- \section1 Editing Keyboard Shortcuts
+ \section2 Text Editing Shortcuts
\table
\header
- \li Action
- \li Keyboard shortcut
- \row
- \li Auto-indent selection
- \li Ctrl+I
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Collapse
- \li Ctrl+<
+ \li Select all
+ \li Ctrl+A
+ \li Cmd+A
\row
- \li Expand
- \li Ctrl+>
+ \li Cut
+ \li Ctrl+X
+ \li Cmd+X
\row
- \li Trigger a completion in this scope
- \li Ctrl+Space
+ \li Copy
+ \li Ctrl+C
+ \li Cmd+C
\row
- \li Display tooltips for function signatures regardless of the
- cursor position in the function call
- \li Ctrl+Shift+D
+ \li Paste
+ \li Ctrl+V
+ \li Cmd+V
\row
- \li Copy line
- \li Ctrl+Ins
+ \li Paste from the clipboard history
+ \li Ctrl+Shift+V
+ \li Cmd+Shift+V
\row
- \li Copy line down
- \li Ctrl+Alt+Down
+ \li Print
+ \li Ctrl+P
+ \li Cmd+P
\row
- \li Copy line up
- \li Ctrl+Alt+Up
+ \li Undo
+ \li Ctrl+Z
+ \li Cmd+Z
\row
- \li Paste from the clipboard history
- \li Ctrl+Shift+V
+ \li Redo
+ \li Ctrl+Shift+Z
+ \li Cmd+Shift+Z
+ \endtable
- Subsequent presses move you back in the history
- \row
- \li Cut line
- \li Shift+Del
- \row
- \li Join lines
- \li Ctrl+J
+ \section1 UI Navigation Shortcuts
+
+ \section2 Mode Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Insert line above current line
- \li Ctrl+Shift+Enter
+ \li Switch to \uicontrol Welcome mode
+ \li Ctrl+1
+ \li Ctrl+1
\row
- \li Insert line below current line
- \li Ctrl+Enter
+ \li Switch to \uicontrol Edit mode
+ \li Ctrl+2
+ \li Ctrl+2
\row
- \li Decrease font size
- \li Ctrl+- (Ctrl+Roll mouse wheel down)
+ \li Switch to \uicontrol Design mode
+ \li Ctrl+3
+ \li Ctrl+3
\row
- \li Increase font size
- \li Ctrl++ (Ctrl+Roll mouse wheel up)
+ \li Switch to \uicontrol Debug mode
+ \li Ctrl+4
+ \li Ctrl+4
\row
- \li Reset font size
- \li Ctrl+0
+ \li Switch to \uicontrol Projects mode
+ \li Ctrl+5
+ \li Ctrl+5
\row
- \li Toggle Vim-style editing
- \li Alt+Y, Alt+Y
+ \li Switch to \uicontrol Extensions mode
+ \li Ctrl+6
+ \li Ctrl+6
\row
- \li Split
- \li Ctrl+E, 2
+ \li Switch to \uicontrol Help mode
+ \li Ctrl+7
+ \li Ctrl+7
\row
- \li Split side by side
- \li Ctrl+E, 3
+ \li Go to \uicontrol Edit mode
+
+ In \uicontrol Edit mode:
+ \list
+ \li The first press moves focus to the editor
+ \li The second press closes secondary windows
+ \endlist
+ \li Esc
+ \li Esc
+ \endtable
+
+ \section2 Output View Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Remove all splits
- \li Ctrl+E, 1
+ \li Toggle \uicontrol{Issues}
+ \li Alt+1
+ \li Cmd+1
\row
- \li Remove current split
- \li Ctrl+E, 0
+ \li Toggle \uicontrol{Search Results}
+ \li Alt+2
+ \li Cmd+2
\row
- \li Select all
- \li Ctrl+A
+ \li Toggle \uicontrol{Application Output}
+ \li Alt+3
+ \li Cmd+3
\row
- \li Go to block end
- \li Ctrl+]
+ \li Toggle \uicontrol{Compile Output}
+ \li Alt+4
+ \li Cmd+4
\row
- \li Go to block start
- \li Ctrl+[
+ \li Toggle other output views
+ \li Alt+<number>
+
+ Where the number is the number of the view.
+ \li Cmd+<number>
\row
- \li Go to block end and select the lines between the current cursor
- position and the end of the block
- \li Ctrl+Shift+]
+ \li Maximize output views
+ \li Alt+Shift+9
+ \li Cmd+Shift+9
\row
- \li Go to block start and select the lines between the current
- cursor position and the beginning of the block
- \li Ctrl+Shift+[
+ \li Move to next item in output
+ \li F6
+ \li F6
\row
- \li Select the current block
+ \li Move to previous item in output
+ \li Shift+F6
+ \li Shift+F6
+ \endtable
+
+ \section2 Sidebar View Shortcuts
- The second press extends the selection to the parent block. To
- enable this behavior, select \preferences >
- \uicontrol {Text Editor} > \uicontrol Behavior >
- \uicontrol {Enable smart selection changing}.
- \li Ctrl+U
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Undo the latest smart block selection
- \li Ctrl+Alt+Shift+U
+ \li Activate \uicontrol Bookmarks view
+ \li Alt+M
+ \li Ctrl+Opt+M
\row
- \li Move current line down
- \li Ctrl+Shift+Down
+ \li Activate \uicontrol{File System} view
+ \li Alt+Y, Alt+F
+ \li Ctrl+Y, Ctrl+F
\row
- \li Move current line up
- \li Ctrl+Shift+Up
+ \li Activate \uicontrol{Open Documents} view
+ \li Alt+O
+ \li Ctrl+O
\row
- \li Trigger a refactoring action in this scope
- \li Alt+Enter
+ \li Activate \uicontrol Projects view
+ \li Alt+X
+ \li Ctrl+X
\row
- \li Rewrap paragraph
- \li Ctrl+E, R
+ \li Full screen
+ \li Ctrl+Shift+F11
+ \li Cmd+Ctrl+F
\row
- \li Enable text wrapping
- \li Ctrl+E, Ctrl+W
+ \li Toggle the left sidebar
+ \li Alt+0
+ \li Cmd+0
\row
- \li Toggle comment for selection
- \li Ctrl+/
+ \li Toggle the right sidebar
+ \li Alt+Shift+0
+ \li Cmd+Shift+0
+ \endtable
+
+ \section1 Editor Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Visualize whitespace
- \li Ctrl+E, Ctrl+V
+ \li Auto-indent selection
+ \li Ctrl+I
+ \li Cmd+I
\row
- \li Toggle bookmark
- \li Ctrl+M
+ \li Rewrap paragraph
+ \li Ctrl+E, R
+ \li Ctrl+E, R
\row
- \li Go to next bookmark
- \li Ctrl+.
+ \li Enable text wrapping
+ \li Ctrl+E, Ctrl+W
+ \li Ctrl+E, Ctrl+W
\row
- \li Go to previous bookmark
- \li Ctrl+,
+ \li Toggle comment for selection
+ \li Ctrl+/
+ \li Cmd+/
\row
- \li Fetch snippet
- \li Alt+C, Alt+F
+ \li Visualize whitespace
+ \li Ctrl+E, Ctrl+V
+ \li Ctrl+E, Ctrl+V
\row
- \li Paste snippet
- \li Alt+C, Alt+P
+ \li Trigger a code completion in the current scope
+ \li Ctrl+Space
+ \li Ctrl+Space
\row
- \li Find references to symbol under cursor
- \li Ctrl+Shift+U
- \note If this keyboard shortcut does not work on Linux, see
- \l {Editing Issues}.
+ \li Trigger a refactoring action in this scope
+ \li Alt+Enter
+ \li Opt+Return
\row
- \li Follow symbol under cursor
+ \li Display tooltips for function signatures regardless of the
+ cursor position in the function call
+ \li Ctrl+Shift+D
+ \li Ctrl+Shift+D
+ \endtable
+
+ \section2 Bookmark Shortcuts
- Works with namespaces, classes, functions, variables, include
- statements, and macros, as well as CMake functions, macros,
- targets, and packages. Also, opens URLs in the default browser
- and Qt resource files (.qrc) in the \l{Create resource files}
- {resource editor}
- \li F2
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Rename symbol under cursor
- \li Ctrl+Shift+R
+ \li Toggle bookmark
+ \li Ctrl+M
+ \li Ctrl+M
\row
- \li Switch between function declaration and definition
- \li Shift+F2
+ \li Go to next bookmark
+ \li Ctrl+.
+ \li Ctrl+.
\row
- \li Open type hierarchy
- \li Ctrl+Shift+T
+ \li Go to previous bookmark
+ \li Ctrl+,
+ \li Ctrl+,
+ \endtable
+
+ \section2 Code Block Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Switch between header and source file
- \li F4
+ \li Collapse block
+ \li Ctrl+<
+ \li Cmd+<
\row
- \li Add a cursor at the next occurrence of selected text for
- multi-cursor editing
- \li Ctrl+D
+ \li Expand block
+ \li Ctrl+>
+ \li Cmd+>
\row
- \li Turn selected text into lowercase
- \li Alt+U
+ \li Go to block end
+ \li Ctrl+]
+ \li Cmd+]
\row
- \li Turn selected text into uppercase
- \li Alt+Shift+U
+ \li Go to block start
+ \li Ctrl+[
+ \li Cmd+[
\row
- \li Sort selected lines alphabetically
- \li Alt+Shift+S
+ \li Go to block end and select the lines between the current cursor
+ position and the end of the block
+ \li Ctrl+Shift+]
+ \li Cmd+}
\row
- \li Run static checks on JavaScript code to find common problems
- \li Ctrl+Shift+C
+ \li Go to block start and select the lines between the current
+ cursor position and the beginning of the block
+ \li Ctrl+Shift+[
+ \li Cmd+{
\row
- \li Find and replace
- \li Ctrl+F
+ \li Select the current block
+
+ The second press extends the selection to the parent block. To
+ enable this behavior, select \preferences >
+ \uicontrol {Text Editor} > \uicontrol Behavior >
+ \uicontrol {Enable smart selection changing}.
+ \li Ctrl+U
+ \li Cmd+U
+ \row
+ \li Undo the latest smart block selection
+ \li Ctrl+Alt+Shift+U
+ \li Cmd+Opt+Shift+U
+ \endtable
+
+ \section2 Code Line Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Find next
- \li F3
+ \li Copy line
+ \li Ctrl+Ins
+ \li Cmd+Ins
\row
- \li Find previous
- \li Shift+F3
+ \li Copy line down
+ \li Ctrl+Alt+Down
+ \li Cmd+Opt+Down
\row
- \li Find next occurrence of selected text
- \li Ctrl+F3
+ \li Copy line up
+ \li Ctrl+Alt+Up
+ \li Cmd+Opt+Up
\row
- \li Find previous occurrence of selected text
- \li Ctrl+Shift+F3
+ \li Cut line
+ \li Shift+Del
+ \li Shift+Del
\row
- \li Replace next
- \li Ctrl+=
+ \li Join lines
+ \li Ctrl+J
+ \li Cmd+J
\row
- \li Open advanced find
- \li Ctrl+Shift+F
+ \li Insert line above current line
+ \li Ctrl+Shift+Enter
+ \li Cmd+Shift+Return
\row
- \li Record a text-editing macro
- \li Alt+[
+ \li Insert line below current line
+ \li Ctrl+Enter
+ \li Cmd+Return
\row
- \li Stop recording a macro
- \li Alt+]
+ \li Move current line down
+ \li Ctrl+Shift+Down
+ \li Cmd+Shift+Down
\row
- \li Play last macro
- \li Alt+R
+ \li Move current line up
+ \li Ctrl+Shift+Up
+ \li Cmd+Shift+Up
+ \endtable
+
+ \section2 Code Navigation Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Show Qt Quick toolbars
- \li Ctrl+Alt+Space
+ \li Find references to symbol under cursor
+ \li Ctrl+Shift+U
+ \note If this keyboard shortcut does not work on Linux, see
+ \l {Editing Issues}.
+ \li Cmd+Shift+U
\row
- \li Execute user actions in FakeVim mode
- \li Alt+Y, n, where n is the number of the user action, from 1 to 9
+ \li Follow symbol under cursor
+
+ Works with namespaces, classes, functions, variables, include
+ statements, and macros, as well as CMake functions, macros,
+ targets, and packages. Also, opens URLs in the default browser
+ and Qt resource files (.qrc) in the \l{Create resource files}
+ {resource editor}
+ \li F2
+ \li F2
+ \row
+ \li Switch between function declaration and definition
+ \li Shift+F2
+ \li Shift+F2
\endtable
- \section1 Emacs Shortcuts
+ \section2 C++ Editing Shortcuts
- You can specify shortcuts for executing actions in a way that is familiar to
- \l{https://www.gnu.org/software/emacs/manual/html_node/emacs/index.html}
- {Emacs} editor users. The actions are not bound to any key combinations by
- default.
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
+ \row
+ \li Open type hierarchy
+ \li Ctrl+Shift+T
+ \li Ctrl+Shift+T
+ \row
+ \li Open include hierarchy
+ \li Ctrl+Shift+I
+ \li Ctrl+Shift+I
+ \row
+ \li Rename symbol under cursor
+ \li Ctrl+Shift+R
+ \li Cmd+Shift+R
+ \row
+ \li Switch between header and source file
+ \li F4
+ \li F4
+ \row
+ \li Add a cursor at the next occurrence of selected text for
+ multi-cursor editing
+ \li Ctrl+D
+ \li Cmd+D
+ \row
+ \li Turn selected text into lowercase
+ \li Alt+U
+ \li Ctrl+U
+ \row
+ \li Turn selected text into uppercase
+ \li Alt+Shift+U
+ \li Ctrl+Shift+U
+ \row
+ \li Sort selected lines alphabetically
+ \li Alt+Shift+S
+ \li Ctrl+Shift+S
+ \endtable
- \note Enable the EmacsKeys plugin to use the shortcuts.
+ \section2 FakeVim Shortcuts
- The following actions are available:
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
+ \row
+ \li Toggle Vim-style editing
+ \li Alt+Y, Alt+Y
+ \li Ctrl+Shift+Y, Ctrl+Shift+Y
+ \row
+ \li Execute user actions in FakeVim mode
+ \li Alt+Y, n, where n is the number of the user action, from 1 to 9
+ \li Ctrl+Shift+Y, n
+ \endtable
- \list
- \li Copy
- \li Cut
- \li Delete Character
- \li Exchange Cursor and Mark
- \li Go to File End
- \li Go to File Start
- \li Go to Line End
- \li Go to Line Start
- \li Go to Next Character
- \li Go to Next Line
- \li Go to Next Word
- \li Go to Previous Character
- \li Go to Previous Line
- \li Go to Previous Word
- \li Insert Line and Indent
- \li Kill Line
- \li Kill Word
- \li Mark
- \li Scroll Half Screen Down
- \li Scroll Half Screen Up
- \li Yank
- \endlist
+ \section2 Font Size Shortcuts
- \section1 \QD Shortcuts
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
+ \row
+ \li Decrease font size
+ \li Ctrl+- (Ctrl+Roll mouse wheel down)
+ \li Cmd+- (Cmd+Roll mouse wheel down)
+ \row
+ \li Increase font size
+ \li Ctrl++ (Ctrl+Roll mouse wheel up)
+ \li Cmd++ (Cmd+Roll mouse wheel up)
+ \row
+ \li Reset font size
+ \li Ctrl+0
+ \li Ctrl+0
+ \endtable
+
+ \section2 Snippet Shortcuts
\table
\header
\li Action
- \li Keyboard shortcut
+ \li Windows and Linux
+ \li \macos
\row
- \li Adjust size
- \li Ctrl+J
+ \li Fetch snippet
+ \li Alt+C, Alt+F
+ \li Ctrl+C, Ctrl+F
\row
- \li Lay out in a grid
- \li Ctrl+G
+ \li Paste snippet
+ \li Alt+C, Alt+P
+ \li Ctrl+C, Ctrl+P
+ \endtable
+
+ \section2 Split View Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Lay out horizontally
- \li Ctrl+H
+ \li Split view
+ \li Ctrl+E, 2
+ \li Ctrl+E, 2
\row
- \li Lay out vertically
- \li Ctrl+L
+ \li Split side by side
+ \li Ctrl+E, 3
+ \li Ctrl+E, 3
\row
- \li Preview
- \li Alt+Shift+R
+ \li Remove all splits
+ \li Ctrl+E, 1
+ \li Ctrl+E, 1
\row
- \li Edit signals and slots
- \li F4
+ \li Remove current split
+ \li Ctrl+E, 0
+ \li Ctrl+E, 0
\endtable
- \section1 Image Viewer Shortcuts
+ \section2 Text Editing Macro Shortcuts
\table
\header
- \li Action
- \li Keyboard shortcut
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Switch to background
- \li Ctrl+[
+ \li Record a text-editing macro
+ \li Alt+[
+ \li Cmd+[
\row
- \li Switch to outline
- \li Ctrl+]
+ \li Stop recording a macro
+ \li Alt+]
+ \li Cmd+]
+ \row
+ \li Play last macro
+ \li Alt+R
+ \li Ctrl+R
+ \endtable
+
+ \section1 Build-and-Run Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Zoom in
- \li Ctrl++
+ \li Build project
+ \li Ctrl+B
+ \li Cmd+B
\row
- \li Zoom out
- \li Ctrl+-
+ \li Build current file
+ \li Ctrl+Alt+B
+ \li Cmd+Opt+B
\row
- \li Fit to screen
- \li Ctrl+=
+ \li Build all
+ \li Ctrl+Shift+B
+ \li Cmd+Shift+B
\row
- \li Original size
- \li Ctrl+0
+ \li Select the \l{Kits}{kit} to build and run your project with
+ \li Ctrl+T
+ \li Cmd+T
+ \row
+ \li Run
+ \li Ctrl+R
+ \li Cmd+R
\endtable
- \section1 Debugging Keyboard Shortcuts
+ \section1 Debugger Shortcuts
\table
\header
- \li Action
- \li Keyboard shortcut
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Start or continue debugging
- \li F5
+ \li Start or continue debugging
+ \li F5
+ \li Cmd+Y
\row
- \li Exit debugger
- \li Shift+F5
+ \li Exit debugger
+ \li Shift+F5
+ \li Cmd+Shift+Y
\row
- \li Step over
- \li F10
+ \li Step over
+ \li F10
+ \li Cmd+Shift+O
\row
- \li Step into
- \li F11
+ \li Step into
+ \li F11
+ \li Cmd+Shift+I
\row
- \li Step out
- \li Shift+F11
+ \li Step out
+ \li Shift+F11
+ \li Cmd+Shift+T
\row
- \li Set or remove breakpoint
- \li F9 (F8 on \macos)
+ \li Set or remove breakpoint
+ \li F9
+ \li F8
\row
- \li Enable or disable breakpoint
- \li Ctrl+F9 (Ctrl+F8 on \macos)
+ \li Enable or disable breakpoint
+ \li Ctrl+F9
+ \li Cmd+F8
\row
- \li Run to selected function
- \li Ctrl+F6
+ \li Run to selected function
+ \li Ctrl+F6
+ \li Cmd+F6
\row
- \li Run to line
- \li Ctrl+F10
+ \li Run to line
+ \li Ctrl+F10
+ \li Shift+F8
\row
- \li Reverse direction
- \li F12
+ \li Reverse direction
+ \li F12
+ \li \e {None}
\endtable
- \section1 Project Keyboard Shortcuts
+ \section1 Help Mode Shortcuts
\table
\header
- \li Action
- \li Keyboard shortcut
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Build project
- \li Ctrl+B
+ \li View context-sensitive help
+ \li F1
+ \li F1
\row
- \li Build all
- \li Ctrl+Shift+B
+ \li Go to \uicontrol Contents in the \uicontrol Help mode
+ \li Ctrl+Shift+C
+ \li \e {None}
\row
- \li New project
- \li Ctrl+Shift+N
+ \li Add a bookmark
+ \li Ctrl+M
+ \li Ctrl+M
\row
- \li Open project
- \li Ctrl+Shift+O
+ \li Go to \uicontrol Index in the \uicontrol Help mode
+ \li Ctrl+Shift+I
+ \li Ctrl+I
\row
- \li Select the \l{Kits}{kit} to build and run your project with
- \li Ctrl+T
+ \li Reset font size
+ \li Ctrl+0
+ \li Ctrl+0
\row
- \li Run
- \li Ctrl+R
+ \li Go to \uicontrol Search in the \uicontrol Help mode
+ \li Ctrl+Shift+/
+ \li Ctrl+/
\endtable
- \section1 Help Keyboard Shortcuts
+ \section1 Image Viewer Shortcuts
\table
\header
- \li Action
- \li Keyboard shortcut
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li View context-sensitive help
- \li F1
+ \li Switch to background
+ \li Ctrl+[
+ \li Cmd+[
\row
- \li Activate contents in \uicontrol Help mode
- \li Ctrl+T
+ \li Switch to outline
+ \li Ctrl+]
+ \li Cmd+]
\row
- \li Add bookmark in \uicontrol Help mode
- \li Ctrl+M
+ \li Zoom in
+ \li Ctrl++
+ \li Cmd++
\row
- \li Activate index in \uicontrol Help mode
- \li Ctrl+I
+ \li Zoom out
+ \li Ctrl+-
+ \li Cmd+-
\row
- \li Reset font size
- \li Ctrl+0
+ \li Fit to screen
+ \li Ctrl+=
+ \li Cmd+=
\row
- \li Activate search in \uicontrol Help mode
- \li Ctrl+S
+ \li Original size
+ \li Ctrl+0
+ \li Ctrl+0
\endtable
- \section1 Version Control Keyboard Shortcuts
+ \section1 Project Shortcuts
\table
\header
- \li {1,2} Action
- \li {6,1} Version control system
+ \li Action
+ \li Windows and Linux
+ \li \macos
+ \row
+ \li New project
+ \li Ctrl+Shift+N
+ \li Cmd+Shift+N
+ \row
+ \li Open project
+ \li Ctrl+Shift+O
+ \li \e {None}
+ \endtable
+
+ \section1 Qt Quick Shortcuts
+
+ \table
\header
- \li Bazaar
- \li CVS
- \li Git
- \li Mercurial
- \li Perforce
- \li Subversion
+ \li Action
+ \li Windows and Linux
+ \li \macos
+ \row
+ \li Show Qt Quick toolbars
+ \li Ctrl+Alt+Space
+ \li Ctrl+Opt+Space
\row
- \li Add
- \li
- \li Alt+C, Alt+A
- \li Alt+G, Alt+A
- \li
- \li Alt+P, Alt+A
- \li Alt+S, Alt+A
+ \li Run static checks on JavaScript code to find common problems
+ \li Ctrl+Shift+C
+ \li Cmd+Shift+C
+ \endtable
+
+ \section1 \QD Shortcuts
+
+ \table
+ \header
+ \li Action
+ \li Windows and Linux
+ \li \macos
\row
- \li Commit/Submit
- \li Alt+Z, Alt+C
- \li Alt+C, Alt+C
- \li Alt+G, Alt+C
- \li Alt+G, Alt+C
- \li Alt+P, Alt+S
- \li Alt+S, Alt+C
+ \li Adjust size
+ \li Ctrl+J
+ \li Ctrl+J
\row
- \li Diff
- \li Alt+Z, Alt+D
- \li Alt+C, Alt+D
- \li Alt+G, Alt+D
- \li Alt+G, Alt+D
- \li
- \li Alt+S, Alt+D
+ \li Lay out in a grid
+ \li Ctrl+G
+ \li Ctrl+Shift+G
\row
- \li Diff project or repository
- \li
- \li
- \li Alt+G, Alt+Shift+D
- \li
- \li Alt+P, Alt+D
- \li
+ \li Lay out horizontally
+ \li Ctrl+H
+ \li Ctrl+Shift+H
\row
- \li Blame/Annotate
- \li
- \li
- \li Alt+G, Alt+B
- \li
- \li
- \li
- \row
- \li Log/Filelog
- \li Alt+Z, Alt+L
- \li
- \li Alt+G, Alt+L
- \li Alt+G, Alt+L
- \li Alt+P, Alt+F
- \li
- \row
- \li Log repository
- \li
- \li
- \li Alt+G, Alt+K
- \li
- \li
- \li
- \row
- \li Status
- \li Alt+Z, Alt+S
- \li
- \li
- \li Alt+G, Alt+S
- \li
- \li
- \row
- \li Undo changes/Revert
- \li
- \li
- \li Alt+G, Alt+U
- \li
- \li Alt+P, Alt+R
- \li
- \row
- \li Edit
- \li
- \li
- \li
- \li
- \li Alt+P, Alt+E
- \li
- \row
- \li Opened
- \li
- \li
- \li
- \li
- \li Alt+P, Alt+O
- \li
+ \li Lay out vertically
+ \li Ctrl+L
+ \li Ctrl+L
+ \row
+ \li Preview
+ \li Alt+Shift+R
+ \li Opt+Shift+R
+ \row
+ \li Edit signals and slots
+ \li F4
+ \li F4
\endtable
+ \section1 Version Control Shortcuts
+
+ \table
+ \header
+ \li {1,2} Action
+ \li {6,1} Version control system
+ \header
+ \li Bazaar
+ \li CVS
+ \li Git
+ \li Mercurial
+ \li Perforce
+ \li Subversion
+ \row
+ \li Add
+ \li \e {None}
+ \li Alt+C, Alt+A
+ \li Alt+G, Alt+A
+ \li \e {None}
+ \li Alt+P, Alt+A
+ \li Alt+S, Alt+A
+ \row
+ \li Commit/Submit
+ \li Alt+Z, Alt+C
+ \li Alt+C, Alt+C
+ \li Alt+G, Alt+C
+ \li Alt+G, Alt+C
+ \li Alt+P, Alt+S
+ \li Alt+S, Alt+C
+ \row
+ \li Diff
+ \li Alt+Z, Alt+D
+ \li Alt+C, Alt+D
+ \li Alt+G, Alt+D
+ \li Alt+G, Alt+D
+ \li \e {None}
+ \li Alt+S, Alt+D
+ \row
+ \li Diff of project or repository
+ \li \e {None}
+ \li \e {None}
+ \li Alt+G, Alt+Shift+D
+ \li \e {None}
+ \li Alt+P, Alt+D
+ \li \e {None}
+ \row
+ \li Diff of current modified editor
+ \li \e {None}
+ \li \e {None}
+ \li Alt+H
+ \li \e {None}
+ \li \e {None}
+ \li \e {None}
+ \row
+ \li Blame/Annotate
+ \li \e {None}
+ \li \e {None}
+ \li Alt+G, Alt+B
+ \li \e {None}
+ \li \e {None}
+ \li \e {None}
+ \row
+ \li Log/Filelog
+ \li Alt+Z, Alt+L
+ \li \e {None}
+ \li Alt+G, Alt+L
+ \li Alt+G, Alt+L
+ \li Alt+P, Alt+F
+ \li \e {None}
+ \row
+ \li Log repository
+ \li \e {None}
+ \li \e {None}
+ \li Alt+G, Alt+K
+ \li \e {None}
+ \li \e {None}
+ \li \e {None}
+ \row
+ \li Status
+ \li Alt+Z, Alt+S
+ \li \e {None}
+ \li \e {None}
+ \li Alt+G, Alt+S
+ \li \e {None}
+ \li \e {None}
+ \row
+ \li Undo changes/Revert
+ \li \e {None}
+ \li \e {None}
+ \li Alt+G, Alt+U
+ \li \e {None}
+ \li Alt+P, Alt+R
+ \li \e {None}
+ \row
+ \li Edit
+ \li \e {None}
+ \li \e {None}
+ \li \e {None}
+ \li \e {None}
+ \li Alt+P, Alt+E
+ \li \e {None}
+ \row
+ \li Opened
+ \li \e {None}
+ \li \e {None}
+ \li \e {None}
+ \li \e {None}
+ \li Alt+P, Alt+O
+ \li \e {None}
+ \endtable
+
+ \section2 VCS Shortcuts on \macos
+
+ \table
+ \header
+ \li {1,2} Action
+ \li {6,1} Version control system
+ \header
+ \li Bazaar
+ \li CVS
+ \li Git
+ \li Mercurial
+ \li Perforce
+ \li Subversion
+ \row
+ \li Add
+ \li \e {None}
+ \li Ctrl+C, Ctrl+A
+ \li Ctrl+G, Ctrl+A
+ \li \e {None}
+ \li Ctrl+P, Ctrl+A
+ \li Ctrl+S, Ctrl+A
+ \row
+ \li Commit/Submit
+ \li Ctrl+Z, Ctrl+C
+ \li Ctrl+C, Ctrl+C
+ \li Ctrl+G, Ctrl+C
+ \li Ctrl+H, Ctrl+C
+ \li Ctrl+P, Ctrl+S
+ \li Ctrl+S, Ctrl+C
+ \row
+ \li Diff
+ \li Ctrl+Z, Ctrl+D
+ \li Ctrl+C, Ctrl+D
+ \li Ctrl+G, Ctrl+D
+ \li Ctrl+H, Ctrl+D
+ \li \e {None}
+ \li Ctrl+S, Ctrl+D
+ \row
+ \li Diff of project or repository
+ \li \e {None}
+ \li \e {None}
+ \li Ctrl+G, Ctrl+Shift+D
+ \li \e {None}
+ \li Ctrl+P, Ctrl+D
+ \li \e {None}
+ \row
+ \li Diff of current modified editor
+ \li \e {None}
+ \li \e {None}
+ \li Ctrl+H
+ \li \e {None}
+ \li \e {None}
+ \li \e {None}
+ \row
+ \li Blame/Annotate
+ \li \e {None}
+ \li \e {None}
+ \li Ctrl+G, Ctrl+B
+ \li \e {None}
+ \li \e {None}
+ \li \e {None}
+ \row
+ \li Log/Filelog
+ \li Ctrl+Z, Ctrl+L
+ \li \e {None}
+ \li Ctrl+G, Ctrl+L
+ \li Ctrl+H, Ctrl+L
+ \li Ctrl+P, Ctrl+F
+ \li \e {None}
+ \row
+ \li Log repository
+ \li \e {None}
+ \li \e {None}
+ \li Ctrl+G, Ctrl+K
+ \li \e {None}
+ \li \e {None}
+ \li \e {None}
+ \row
+ \li Status
+ \li Ctrl+Z, Ctrl+S
+ \li \e {None}
+ \li \e {None}
+ \li Ctrl+H, Ctrl+S
+ \li \e {None}
+ \li \e {None}
+ \row
+ \li Undo changes/Revert
+ \li \e {None}
+ \li \e {None}
+ \li Ctrl+G, Ctrl+U
+ \li \e {None}
+ \li Ctrl+P, Ctrl+R
+ \li \e {None}
+ \row
+ \li Edit
+ \li \e {None}
+ \li \e {None}
+ \li \e {None}
+ \li \e {None}
+ \li Ctrl+P, Ctrl+E
+ \li \e {None}
+ \row
+ \li Opened
+ \li \e {None}
+ \li \e {None}
+ \li \e {None}
+ \li \e {None}
+ \li Ctrl+P, Ctrl+O
+ \li \e {None}
+ \endtable
+
+ \section1 Emacs Shortcuts
+
+ You can specify shortcuts for executing actions in a way that is familiar to
+ \l{https://www.gnu.org/software/emacs/manual/html_node/emacs/index.html}
+ {Emacs} editor users. The actions are not bound to any key combinations by
+ default.
+
+ \note Enable the EmacsKeys plugin to use the shortcuts.
+
+ The following actions are available:
+
+ \list
+ \li Copy
+ \li Cut
+ \li Delete Character
+ \li Exchange Cursor and Mark
+ \li Go to File End
+ \li Go to File Start
+ \li Go to Line End
+ \li Go to Line Start
+ \li Go to Next Character
+ \li Go to Next Line
+ \li Go to Next Word
+ \li Go to Previous Character
+ \li Go to Previous Line
+ \li Go to Previous Word
+ \li Insert Line and Indent
+ \li Kill Line
+ \li Kill Word
+ \li Mark
+ \li Scroll Half Screen Down
+ \li Scroll Half Screen Up
+ \li Yank
+ \endlist
+
\sa {Assign keyboard shortcuts}, {Find keyboard shortcuts},
{Import and export keyboard shortcuts}, {Enable and disable plugins}
*/
diff --git a/doc/qtcreator/src/python/creator-python-development.qdoc b/doc/qtcreator/src/python/creator-python-development.qdoc
index f98aff41fa2..5a30cf0d40e 100644
--- a/doc/qtcreator/src/python/creator-python-development.qdoc
+++ b/doc/qtcreator/src/python/creator-python-development.qdoc
@@ -51,7 +51,7 @@
Use wizards to create Qt for Python application projects. The wizards
generate a project file, \c {.pyproject}, that lists the files in the Python
project. They also generate a \c {.py} file that has some boilerplate code
- and \c {reguirements.txt} that stores the PySide version of the generated code.
+ and \c {requirements.txt} that stores the PySide version of the generated code.
In addition, the widget-based UI wizard creates a \c {.ui} file that has a
\QD form, and the Qt Quick Application wizard creates a \c {.qml} file that
imports Qt Quick controls.
diff --git a/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets-ui.qdoc b/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets-ui.qdoc
index f7aa1238777..8380a6495ca 100644
--- a/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets-ui.qdoc
+++ b/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets-ui.qdoc
@@ -72,7 +72,7 @@
\li \c {hello_world_ui.pyproject}, which lists the files in the Python
project.
\li \c {mainwindow.py}, which has some boilerplate code for a class.
- \li \c {reguirements.txt}, which stores the PySide version of the
+ \li \c {requirements.txt}, which stores the PySide version of the
generated code. You can use this file to install the required PySide
version using pip.
\endlist
diff --git a/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets.qdoc b/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets.qdoc
index b6eec3cb167..6235af0adb4 100644
--- a/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets.qdoc
+++ b/doc/qtcreator/src/python/creator-tutorial-python-application-qt-widgets.qdoc
@@ -68,10 +68,10 @@
The wizard generates the following files:
\list
- \li \c {hellow_world.pyproject}, which lists the files in the Python
+ \li \c {hello_world.pyproject}, which lists the files in the Python
project.
\li \c {mywidget.py}, which has some boilerplate code for a class.
- \li \c {reguirements.txt}, which stores the PySide version of the
+ \li \c {requirements.txt}, which stores the PySide version of the
generated code. You can use this file to install the required PySide version
using pip.
\endlist
diff --git a/doc/qtcreator/src/python/creator-tutorial-python-application-qtquick.qdoc b/doc/qtcreator/src/python/creator-tutorial-python-application-qtquick.qdoc
index df3218197b3..c49dc1cbd5a 100644
--- a/doc/qtcreator/src/python/creator-tutorial-python-application-qtquick.qdoc
+++ b/doc/qtcreator/src/python/creator-tutorial-python-application-qtquick.qdoc
@@ -61,7 +61,7 @@
project.
\li \c {main.py}, which has some boilerplate code.
\li \c {main.qml}, which imports Qt Quick controls.
- \li \c {reguirements.txt}, which stores the PySide version of the
+ \li \c {requirements.txt}, which stores the PySide version of the
generated code. You can use this file to install the required PySide version
using pip.
\endlist
diff --git a/doc/qtcreator/src/vcs/creator-only/creator-vcs-preferences.qdoc b/doc/qtcreator/src/vcs/creator-only/creator-vcs-preferences.qdoc
index 2bf02fbe4c8..469ad09fb2c 100644
--- a/doc/qtcreator/src/vcs/creator-only/creator-vcs-preferences.qdoc
+++ b/doc/qtcreator/src/vcs/creator-only/creator-vcs-preferences.qdoc
@@ -1,4 +1,4 @@
-// Copyright (C) 2023 The Qt Company Ltd.
+// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
@@ -27,7 +27,7 @@
\section1 General VCS preferences
- Select \preferences > \uicontrol {Version Control}
+ Go to \preferences > \uicontrol {Version Control}
> \uicontrol General to specify settings for submit messages:
\image qtcreator-preferences-vcs-general.webp {General tab in Version Control preferences}
@@ -74,5 +74,13 @@
from the command line, for example.
\endlist
+ \section1 Show file status in Projects
+
+ Requesting file status updates from files and showing them in \l {Projects}
+ might slow down \QC.
+
+ To show file status, go to \preferences > \uicontrol {Version Control}
+ > \uicontrol General, and then select \uicontrol {Show VCS file status}.
+
\sa {Version Control Systems}
*/
diff --git a/share/qtcreator/translations/qtcreator_de.ts b/share/qtcreator/translations/qtcreator_de.ts
index 99905d5a6b2..d19da8e6e69 100644
--- a/share/qtcreator/translations/qtcreator_de.ts
+++ b/share/qtcreator/translations/qtcreator_de.ts
@@ -10875,7 +10875,7 @@ Locked components cannot be modified or selected.</source>
</message>
<message>
<source>All changes on this page take effect immediately.</source>
- <translation type="unfinished"></translation>
+ <translation>Alle Änderungen auf dieser Seite werden sofort wirksam.</translation>
</message>
<message>
<source>Failed to create the SDK Tools path %1.</source>
@@ -11295,31 +11295,31 @@ Dies kann nicht rückgängig gemacht werden.</translation>
</message>
<message>
<source>Target ABI / API:</source>
- <translation type="unfinished"></translation>
+ <translation>Ziel-ABI / API:</translation>
</message>
<message>
<source>Skin definition:</source>
- <translation type="unfinished"></translation>
+ <translation>Skin-Definition:</translation>
</message>
<message>
<source>Avd list command failed. %1 %2</source>
- <translation type="unfinished"></translation>
+ <translation>Avd List-Kommando ist fehlgeschlagen. %1 %2</translation>
</message>
<message>
<source>Creating new AVD device...</source>
- <translation type="unfinished"></translation>
+ <translation>Erzeuge neues AVD-Gerät...</translation>
</message>
<message>
<source>Install a system image from the SDK Manager first.</source>
- <translation type="unfinished"></translation>
+ <translation>Installieren Sie erst ein System-Image vom SDK Manager.</translation>
</message>
<message>
<source>No system images found.</source>
- <translation type="unfinished"></translation>
+ <translation>Es wurden keine System-Images gefunden.</translation>
</message>
<message>
<source>No system images found for %1.</source>
- <translation type="unfinished"></translation>
+ <translation>Es wurden keine System-Images für %1 gefunden.</translation>
</message>
<message>
<source>Name:</source>
@@ -11493,11 +11493,11 @@ Das Kit unterstützt &quot;%2&quot;, aber das Gerät verwendet &quot;%3&quot;.</
</message>
<message>
<source>Android package installation finished with success.</source>
- <translation type="unfinished"></translation>
+ <translation>Android-Paketinstallation wurde erfolgreich abgeschlossen.</translation>
</message>
<message>
<source>Android package installation failed.</source>
- <translation type="unfinished"></translation>
+ <translation>Android-Paketinstallation ist fehlgeschlagen.</translation>
</message>
<message>
<source>Deploy to Android device</source>
@@ -11636,19 +11636,19 @@ Der vom Kit mindestens benötigte API-Level ist %1.</translation>
<message>
<source>Failed to forward %1 debugging ports.</source>
<extracomment>%1 = QML/JDB/C++</extracomment>
- <translation type="unfinished"></translation>
+ <translation>Die Debugging-Ports für %1 konnten nicht weitergeleitet werden.</translation>
</message>
<message>
<source>Activity Manager error: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler des Activity Manager: %1</translation>
</message>
<message>
<source>Android target &quot;%1&quot; terminated.</source>
- <translation type="unfinished"></translation>
+ <translation>Android-Ziel &quot;%1&quot; wurde beendet.</translation>
</message>
<message>
<source>Android target &quot;%1&quot; died.</source>
- <translation type="unfinished"></translation>
+ <translation>Android-Ziel &quot;%1&quot; wurde unerwartet beended.</translation>
</message>
<message>
<source>Failed to find application directory.</source>
@@ -11997,37 +11997,39 @@ Installieren Sie diese manuell, nachdem der aktuelle Vorgang abgeschlossen ist.
</message>
<message>
<source>No application build targets found in this project.</source>
- <translation type="unfinished"></translation>
+ <translation>Im Projekt wurden keine Build-Ziele für Anwendungen gefunden.</translation>
</message>
<message>
<source>No Application Build Target</source>
- <translation type="unfinished"></translation>
+ <translation>Kein Build-Ziel für eine Anwendung</translation>
</message>
<message>
<source>Select the build target for which to create the Android templates.</source>
- <translation type="unfinished"></translation>
+ <translation>Wählen Sie das Build-Ziel, für das die Android-Vorlagen erstellt werden sollen.</translation>
</message>
<message>
<source>Build target:</source>
- <translation type="unfinished"></translation>
+ <translation>Build-Ziel:</translation>
</message>
<message>
<source>Select a build target</source>
- <translation type="unfinished"></translation>
+ <translation>Wählen Sie ein Build-Ziel</translation>
</message>
<message>
<source>It is highly recommended if you are planning to extend the Java side of your Qt application.</source>
- <translation type="unfinished"></translation>
+ <translation>Dies ist sehr zu empfehlen, wenn Sie planen, ihre Qt-Anwendung mit Java-Code zu erweitern.</translation>
</message>
<message>
<source>Select the Android package source directory.
The files in the Android package source directory will be copied to the Android build directory and the default templates will be overwritten.</source>
- <translation type="unfinished"></translation>
+ <translation>Wählen Sie das Quellverzeichnis des Android-Pakets aus.
+
+Die Dateien aus dem Quellverzeichnis des Android-Pakets werden in das Android-Build-Verzeichnis kopiert und die Vorlagen überschrieben.</translation>
</message>
<message>
<source>The Android template files will be created under the %1 path that is set in the project file.</source>
- <translation type="unfinished"></translation>
+ <translation>Die Vorlage-Dateien für Android werden in dem Verzeichnis erstellt, das als %1 in der Projektdatei angegeben ist.</translation>
</message>
<message>
<source>Create Android Template Files Wizard</source>
@@ -12373,11 +12375,11 @@ und das Überschreiben Ihrer Einstellungen erfordert. Das Überschreiben erlaube
</message>
<message>
<source>Restart if running:</source>
- <translation type="unfinished"></translation>
+ <translation>Laufende Anwendung neu starten:</translation>
</message>
<message>
<source>Restarts the application in case it is already running.</source>
- <translation type="unfinished"></translation>
+ <translation>Startet die Anwendung neu, falls sie bereits läuft.</translation>
</message>
<message>
<source>Controller:</source>
@@ -12718,7 +12720,7 @@ Ausführbare Datei: %2</translation>
</message>
<message>
<source>Show Durations</source>
- <translation type="unfinished"></translation>
+ <translation>Laufzeiten anzeigen</translation>
</message>
<message>
<source>Pass</source>
@@ -13772,15 +13774,15 @@ Siehe auch die Einstellungen für Google Test.</translation>
</message>
<message>
<source>Open Preferences...</source>
- <translation type="unfinished"></translation>
+ <translation>Einstellungen öffnen...</translation>
</message>
<message>
<source>Configure dashboards in Preferences &gt; Axivion &gt; General.</source>
- <translation type="unfinished"></translation>
+ <translation>Konfigurieren Sie Dashboards in Einstellungen &gt; Axivion &gt; Allgemein.</translation>
</message>
<message>
<source>None</source>
- <translation type="unfinished"></translation>
+ <translation>Kein</translation>
</message>
<message>
<source>No Data</source>
@@ -13792,27 +13794,27 @@ Siehe auch die Einstellungen für Google Test.</translation>
</message>
<message>
<source>Issues</source>
- <translation type="unfinished">Probleme</translation>
+ <translation>Probleme</translation>
</message>
<message>
<source>Issue Details</source>
- <translation type="unfinished"></translation>
+ <translation>Problemdetails</translation>
</message>
<message>
<source>Reload</source>
- <translation type="unfinished">Neu laden</translation>
+ <translation>Neu laden</translation>
</message>
<message>
<source>Show Inline Issues</source>
- <translation type="unfinished"></translation>
+ <translation>Problem im Code anzeigen</translation>
</message>
<message>
<source>Show Issue Annotations Inline</source>
- <translation type="unfinished"></translation>
+ <translation>Inline-Annotationen für Probleme anzeigen</translation>
</message>
<message>
<source>Show Online Filter Help</source>
- <translation type="unfinished"></translation>
+ <translation>Online-Filterhilfe anzeigen</translation>
</message>
<message>
<source>Open Issue in Dashboard</source>
@@ -13828,7 +13830,7 @@ Siehe auch die Einstellungen für Google Test.</translation>
</message>
<message>
<source>Show Issue Properties</source>
- <translation type="unfinished"></translation>
+ <translation>Problemeigenschaften anzeigen</translation>
</message>
<message>
<source>Certificate Error</source>
@@ -13910,7 +13912,7 @@ Wollen Sie &quot;%1&quot; mit der Standardanwendung öffnen?</translation>
</message>
<message>
<source>Axivion: Deleting API token for %1 as respective dashboard server was removed.</source>
- <translation type="unfinished"></translation>
+ <translation>Axivion: Lösche API-Token für %1, da das entsprechende Dashboard entfernt wurde.</translation>
</message>
<message>
<source>Dashboard URL:</source>
@@ -13962,43 +13964,43 @@ Wollen Sie &quot;%1&quot; mit der Standardanwendung öffnen?</translation>
</message>
<message>
<source>Project name:</source>
- <translation type="unfinished">Projektname:</translation>
+ <translation>Projektname:</translation>
</message>
<message>
<source>Analysis path:</source>
- <translation type="unfinished"></translation>
+ <translation>Analysepfad:</translation>
</message>
<message>
<source>Local path:</source>
- <translation type="unfinished"></translation>
+ <translation>Lokaler Pfad:</translation>
</message>
<message>
<source>Project Name</source>
- <translation type="unfinished">Projektname</translation>
+ <translation>Projektname</translation>
</message>
<message>
<source>Analysis Path</source>
- <translation type="unfinished"></translation>
+ <translation>Analysepfad</translation>
</message>
<message>
<source>Local Path</source>
- <translation type="unfinished"></translation>
+ <translation>Lokaler Pfad</translation>
</message>
<message>
<source>Add</source>
- <translation type="unfinished">Hinzufügen</translation>
+ <translation>Hinzufügen</translation>
</message>
<message>
<source>Delete</source>
- <translation type="unfinished">Löschen</translation>
+ <translation>Löschen</translation>
</message>
<message>
<source>Move Up</source>
- <translation type="unfinished">Nach oben</translation>
+ <translation>Nach oben</translation>
</message>
<message>
<source>Move Down</source>
- <translation type="unfinished">Nach unten</translation>
+ <translation>Nach unten</translation>
</message>
<message>
<source>General</source>
@@ -14006,7 +14008,7 @@ Wollen Sie &quot;%1&quot; mit der Standardanwendung öffnen?</translation>
</message>
<message>
<source>Path Mapping</source>
- <translation type="unfinished"></translation>
+ <translation>Pfadzuordnung</translation>
</message>
<message>
<source>Fetching...</source>
@@ -14022,11 +14024,19 @@ a matches issues where the value contains the letter &apos;a&apos;
(ab | cd) &amp; !ef matches issues with values containing &apos;ab&apos; or &apos;cd&apos; but not &apos;ef&apos;
&quot;&quot; matches issues having an empty value in this column
!&quot;&quot; matches issues having any non-empty value in this column</source>
- <translation type="unfinished"></translation>
+ <translation>Filter können mit &amp; als logischem Und, | als logischem Oder und ! als logischem Nicht kombiniert werden. Die Filter können * als Platzhalter für Sequenzen beliebiger Zeichen enthalten. Wenn ein einzelner Filter mit doppelten Anführungszeichen eingeschlossen ist, wird er mit der gesamten Zeichenkette verglichen. Einige Filterzeichen erfordern, dass der Filterausdruck mit doppelten Anführungszeichen eingeschlossen ist. Innerhalb doppelter Anführungszeichen müssen &quot; und \ mit einem Backslash maskiert werden.
+Einige Beispiele:
+
+a entspricht Problemen, deren Wert den Buchstaben &apos;a&apos; enthält
+&quot;abc&quot; entspricht Problemen, deren Wert exakt &apos;abc&apos; ist
+!abs entspricht Problemen, deren Wert nicht &apos;abc&apos; enthält
+(ab | cd) &amp; !ef entspricht Problemen, deren Wert &apos;ab&apos; oder &apos;cd&apos; enthält, aber nicht &apos;ef&apos;
+&quot;&quot; entspricht Problemen, die in dieser Spalte einen leeren Wert haben
+!&quot;&quot; entspricht Problemen, die in dieser Spalte einen Wert haben, der nicht leer ist</translation>
</message>
<message>
<source>Apply</source>
- <translation type="unfinished">Anwenden</translation>
+ <translation>Anwenden</translation>
</message>
</context>
<context>
@@ -15806,19 +15816,19 @@ Zum Beispiel bewirkt die Angabe &quot;Revision: 15&quot; dass der Branch auf Rev
</message>
<message>
<source>Build &amp;Subproject &quot;%1&quot;</source>
- <translation type="unfinished">&amp;Unterprojekt &quot;%1&quot; erstellen</translation>
+ <translation>&amp;Unterprojekt &quot;%1&quot; erstellen</translation>
</message>
<message>
<source>Build &amp;Subproject</source>
- <translation type="unfinished">&amp;Unterprojekt erstellen</translation>
+ <translation>&amp;Unterprojekt erstellen</translation>
</message>
<message>
<source>Rebuild</source>
- <translation type="unfinished">Neu erstellen</translation>
+ <translation>Neu erstellen</translation>
</message>
<message>
<source>Clean</source>
- <translation type="unfinished">Bereinigen</translation>
+ <translation>Bereinigen</translation>
</message>
<message>
<source>Re-generates the kits that were created for CMake presets. All manual modifications to the CMake project settings will be lost.</source>
@@ -15902,7 +15912,7 @@ Zum Beispiel bewirkt die Angabe &quot;Revision: 15&quot; dass der Branch auf Rev
</message>
<message>
<source>None</source>
- <translation type="unfinished"></translation>
+ <translation>Keins</translation>
</message>
<message>
<source>CMake executable path does not exist.</source>
@@ -16073,7 +16083,7 @@ Zum Beispiel bewirkt die Angabe &quot;Revision: 15&quot; dass der Branch auf Rev
</message>
<message>
<source>Expands to:</source>
- <translation type="unfinished"></translation>
+ <translation>Wird expandiert zu:</translation>
</message>
<message>
<source>Current Configuration:</source>
@@ -17201,27 +17211,27 @@ Das integrierte Codemodell übernimmt das Einrücken.</translation>
</message>
<message>
<source>Import Code Format</source>
- <translation type="unfinished"></translation>
+ <translation>Code-Format importieren</translation>
</message>
<message>
<source>ClangFormat (*clang-format*);;All files (*)</source>
- <translation type="unfinished"></translation>
+ <translation>ClangFormat (*clang-format*);;All files (*)</translation>
</message>
<message>
<source>Import Code Style</source>
- <translation type="unfinished">Coding Style importieren</translation>
+ <translation>Coding Style importieren</translation>
</message>
<message>
<source>Enter a name for the imported code style:</source>
- <translation type="unfinished"></translation>
+ <translation>Geben Sie einen Namen für den importierten Coding Style ein:</translation>
</message>
<message>
<source>Cannot import code style from &quot;%1&quot;.</source>
- <translation type="unfinished">Der Coding-Stil kann nicht von &quot;%1&quot; importiert werden.</translation>
+ <translation>Der Coding Style kann nicht von &quot;%1&quot; importiert werden.</translation>
</message>
<message>
<source>Export Code Format</source>
- <translation type="unfinished"></translation>
+ <translation>Code-Format exportieren</translation>
</message>
<message>
<source>ClangFormat</source>
@@ -17832,15 +17842,15 @@ Setzen Sie erst eine gültige ausführbare Datei.</translation>
</message>
<message>
<source>Compilation database for %1 successfully generated at &quot;%2&quot;.</source>
- <translation type="unfinished"></translation>
+ <translation>Kompilierungsdatenbank für %1 wurde erfolgreich in &quot;%2&quot; erzeugt.</translation>
</message>
<message>
<source>Generating compilation database for %1 failed: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Erzeugen der Kompilierungsdatenbank für %1 ist fehlgeschlagen: %2</translation>
</message>
<message>
<source>Generating compilation database for %1 at &quot;%2&quot; ...</source>
- <translation type="unfinished"></translation>
+ <translation>Erzeuge Kompilierungsdatenbank für %1 in &quot;%2&quot; ...</translation>
</message>
</context>
<context>
@@ -18338,83 +18348,83 @@ Setzen Sie erst eine gültige ausführbare Datei.</translation>
<name>QtC::CmdBridge</name>
<message>
<source>Command failed with exit code %1: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Kommando ist mit Rückgabewert %1 fehlgeschlagen: %2</translation>
</message>
<message>
<source>Error starting cmdbridge: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler beim Starten von cmdbridge: %1</translation>
</message>
<message>
<source>Remote root path is empty</source>
- <translation type="unfinished"></translation>
+ <translation>Entferntes Wurzelverzeichnis ist leer</translation>
</message>
<message>
<source>Remote root path is not absolute</source>
- <translation type="unfinished"></translation>
+ <translation>Entferntes Wurzelverzeichnis ist nicht absolut</translation>
</message>
<message>
<source>Could not find dd on remote host: %1</source>
- <translation type="unfinished"></translation>
+ <translation>dd konnte auf dem entfernten Host nicht gefunden werden: %1</translation>
</message>
<message>
<source>Error reading file: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler beim Lesen der Datei: %1</translation>
</message>
<message>
<source>Error writing file: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler beim Schreiben der Datei: %1</translation>
</message>
<message>
<source>File does not exist</source>
- <translation type="unfinished"></translation>
+ <translation>Datei existiert nicht</translation>
</message>
<message>
<source>Error removing file: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler beim Entfernen der Datei: %1</translation>
</message>
<message>
<source>Error copying file: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler beim Kopieren der Datei: %1</translation>
</message>
<message>
<source>Error renaming file: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler beim Umbenennen der Datei: %1</translation>
</message>
<message>
<source>Error killing process: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler beim Beenden des Prozesses: %1</translation>
</message>
<message>
<source>Error creating temporary file: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Fehler beim Erstellen der temporären Datei: %1</translation>
</message>
<message>
<source>Failed starting bridge process</source>
- <translation type="unfinished"></translation>
+ <translation>Das Starten des Bridge-Prozesses ist fehlgeschlagen</translation>
</message>
<message>
<source>Failed starting bridge process: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Das Starten des Bridge-Prozesses ist fehlgeschlagen: %1</translation>
</message>
<message>
<source>Bridge process not running</source>
- <translation type="unfinished"></translation>
+ <translation>Bridge-Prozess läuft nicht</translation>
</message>
<message>
<source>FollowSymlinks is not supported</source>
- <translation type="unfinished"></translation>
+ <translation>FollowSymlinks wird nicht unterstützt</translation>
</message>
<message>
<source>Kickoff signal is not supported</source>
- <translation type="unfinished"></translation>
+ <translation>Kickoff-Signal wird nicht unterstützt</translation>
</message>
<message>
<source>CloseWriteChannel signal is not supported</source>
- <translation type="unfinished"></translation>
+ <translation>CloseWriteChannel-Signal wird nicht unterstützt</translation>
</message>
<message>
<source>No command bridge found for architecture %1-%2</source>
- <translation type="unfinished"></translation>
+ <translation>Keine Command-Bridge für die Architektur %1-%2 gefunden</translation>
</message>
</context>
<context>
@@ -18698,15 +18708,15 @@ Setzen Sie erst eine gültige ausführbare Datei.</translation>
</message>
<message>
<source>Change backend URL.</source>
- <translation type="unfinished"></translation>
+ <translation>Backend-URL ändern.</translation>
</message>
<message>
<source>Set Compiler Explorer URL</source>
- <translation type="unfinished"></translation>
+ <translation>Compiler Explorer-URL festlegen</translation>
</message>
<message>
<source>URL:</source>
- <translation type="unfinished">URL:</translation>
+ <translation>URL:</translation>
</message>
<message>
<source>Compiler Explorer Editor</source>
@@ -19438,15 +19448,15 @@ Wenn die Systemzeiger für das Verändern der Größe von Ansichten nicht korrek
</message>
<message>
<source>Could not find %1 executable in %2</source>
- <translation type="unfinished"></translation>
+ <translation>Die ausführbare Datei %1 konnte in %2 nicht gefunden werden</translation>
</message>
<message>
<source>The Qt logo, axivion stopping software erosion logo, Qt Group logo, as well as Qt®, Axivion®, avixion stopping software erosion®, Boot to Qt®, Built with Qt®, Coco®, froglogic®, Qt Cloud Services®, Qt Developer Days®, Qt Embedded®, Qt Enterprise®, Qt Group®, Qt Mobile®, Qt Quick®, Qt Quick Compiler®, Squish® are registered trademarks of The Qt Company Ltd. or its subsidiaries.</source>
- <translation type="unfinished"></translation>
+ <translation>The Qt logo, axivion stopping software erosion logo, Qt Group logo, as well as Qt®, Axivion®, avixion stopping software erosion®, Boot to Qt®, Built with Qt®, Coco®, froglogic®, Qt Cloud Services®, Qt Developer Days®, Qt Embedded®, Qt Enterprise®, Qt Group®, Qt Mobile®, Qt Quick®, Qt Quick Compiler®, Squish® are registered trademarks of The Qt Company Ltd. or its subsidiaries.</translation>
</message>
<message>
<source>%1 is free software, and you are welcome to redistribute it under &lt;a href=&quot;%2&quot;&gt;certain conditions&lt;/a&gt;. For some components, different conditions might apply though.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 is free software, and you are welcome to redistribute it under &lt;a href=&quot;%2&quot;&gt;certain conditions&lt;/a&gt;. For some components, different conditions might apply though.</translation>
</message>
<message>
<source>Ctrl+M</source>
@@ -19482,11 +19492,11 @@ Wenn die Systemzeiger für das Verändern der Größe von Ansichten nicht korrek
</message>
<message>
<source>Hide</source>
- <translation type="unfinished"></translation>
+ <translation>Verbergen</translation>
</message>
<message>
<source>Modes</source>
- <translation type="unfinished"></translation>
+ <translation>Modi</translation>
</message>
<message>
<source>Icons and Text</source>
@@ -19503,7 +19513,7 @@ Wenn die Systemzeiger für das Verändern der Größe von Ansichten nicht korrek
<message>
<source>Show %1</source>
<extracomment>%1 = name of a mode</extracomment>
- <translation type="unfinished"></translation>
+ <translation>%1 anzeigen</translation>
</message>
<message>
<source>Ctrl+0</source>
@@ -20124,9 +20134,13 @@ unter Versionsverwaltung (%2) stellen?</translation>
%2
... and %n more.</source>
<extracomment>%1 = name of VCS system, %2 = lines with file paths</extracomment>
- <translation type="unfinished">
- <numerusform></numerusform>
- <numerusform></numerusform>
+ <translation>
+ <numerusform>Die folgenden Dateien konnten nicht zur Versionsverwaltung (%1) hinzugefügt werden
+%2
+... und eine weitere.</numerusform>
+ <numerusform>Die folgenden Dateien konnten nicht zur Versionsverwaltung (%1) hinzugefügt werden
+%2
+... und %n weitere.</numerusform>
</translation>
</message>
<message>
@@ -20331,7 +20345,7 @@ unter Versionsverwaltung (%2) stellen?</translation>
</message>
<message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;MIME magic data is interpreted as defined by the Shared MIME-info Database specification from &lt;a href=&quot;https://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec/&quot;&gt;freedesktop.org&lt;/a&gt;.&lt;hr/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;MIME Magic Data wird interpretiert wie in der Shared MIME-Info Datenbank-Spezifikation von &lt;a href=&quot;https://www.freedesktop.org/wiki/Specifications/shared-mime-info-spec/&quot;&gt;freedesktop.org&lt;/a&gt; festgelegt.&lt;hr/&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</translation>
</message>
<message>
<source>Host16</source>
@@ -20404,11 +20418,11 @@ unter Versionsverwaltung (%2) stellen?</translation>
</message>
<message>
<source>Copy Contents to Scratch Buffer</source>
- <translation type="unfinished"></translation>
+ <translation>Inhalt in Notizbereich kopieren</translation>
</message>
<message>
<source>Failed to open editor for &quot;%1&quot;.</source>
- <translation type="unfinished"></translation>
+ <translation>Es konnte kein Editor für die Datei &quot;%1&quot; geöffnet werden.</translation>
</message>
<message numerus="yes">
<source>Elided %n characters due to Application Output settings</source>
@@ -20539,7 +20553,7 @@ unter Versionsverwaltung (%2) stellen?</translation>
</message>
<message>
<source>Failed to set permissions.</source>
- <translation type="unfinished"></translation>
+ <translation>Dateizugriffsrechte konnten nicht gesetzt werden.</translation>
</message>
<message>
<source>Unable to create the directory %1.</source>
@@ -20632,7 +20646,7 @@ unter Versionsverwaltung (%2) stellen?</translation>
</message>
<message>
<source>Not implemented</source>
- <translation type="unfinished"></translation>
+ <translation>Nicht implementiert</translation>
</message>
<message>
<source>File was restored from auto-saved copy. Select Save to confirm or Revert to Saved to discard changes.</source>
@@ -20644,23 +20658,23 @@ unter Versionsverwaltung (%2) stellen?</translation>
</message>
<message>
<source>Version control state: added.</source>
- <translation type="unfinished"></translation>
+ <translation>Status der Versionsverwaltung: hinzugefügt.</translation>
</message>
<message>
<source>Version control state: modified.</source>
- <translation type="unfinished"></translation>
+ <translation>Status der Versionsverwaltung: verändert.</translation>
</message>
<message>
<source>Version control state: deleted.</source>
- <translation type="unfinished"></translation>
+ <translation>Status der Versionsverwaltung: gelöscht.</translation>
</message>
<message>
<source>Version control state: renamed.</source>
- <translation type="unfinished"></translation>
+ <translation>Status der Versionsverwaltung: umbenannt.</translation>
</message>
<message>
<source>Version control state: untracked.</source>
- <translation type="unfinished"></translation>
+ <translation>Status der Versionsverwaltung: nicht enthalten.</translation>
</message>
<message>
<source>Toggle Progress Details</source>
@@ -20696,7 +20710,7 @@ unter Versionsverwaltung (%2) stellen?</translation>
</message>
<message>
<source>Ignore binary files</source>
- <translation type="unfinished"></translation>
+ <translation>Binärdateien ignorieren</translation>
</message>
<message>
<source>Use re&amp;gular expressions</source>
@@ -21196,23 +21210,23 @@ Möchten Sie es beenden?</translation>
</message>
<message>
<source>Terms and Conditions</source>
- <translation type="unfinished"></translation>
+ <translation>Bedingungen und Konditionen</translation>
</message>
<message>
<source>Accept</source>
- <translation type="unfinished"></translation>
+ <translation>Annehmen</translation>
</message>
<message>
<source>Decline</source>
- <translation type="unfinished"></translation>
+ <translation>Ablehnen</translation>
</message>
<message>
<source>The plugin %1 requires you to accept the following terms and conditions:</source>
- <translation type="unfinished"></translation>
+ <translation>Das Plugin %1 erfordert, dass Sie folgende Bedingungen und Konditionen annehmen:</translation>
</message>
<message>
<source>Do you wish to accept?</source>
- <translation type="unfinished"></translation>
+ <translation>Wollen Sie diese annehmen?</translation>
</message>
<message>
<source>No themes found in installation.</source>
@@ -21352,7 +21366,7 @@ Sie werden wahrscheinlich auf weitere Probleme mit dieser Instanz von %3 stoßen
</message>
<message>
<source>%1 uses Google Crashpad for collecting crashes and sending them to Sentry for processing. Crashpad may capture arbitrary contents from crashed process’ memory, including user sensitive information, URLs, and whatever other content users have trusted %1 with. The collected crash reports are however only used for the sole purpose of fixing bugs.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 nutzt Google Crashpad, um Absturzberichte zu sammeln und diese zur Verarbeitung an Sentry zu senden. Crashpad kann beliebige Inhalte des Speichers des abgestürzten Prozesses erfassen. Dies beinhaltet persönliche Daten, URLs und welche Inhalte auch immer der Benutzer %1 anvertraut hat. Die gesammelten Absturzberichte werden allerdings nur zum Zweck der Fehlerbehebung genutzt.</translation>
</message>
<message>
<source>More information:</source>
@@ -21524,11 +21538,11 @@ Möchten Sie sie jetzt auschecken?</translation>
</message>
<message>
<source>Open Previous Document</source>
- <translation type="unfinished"></translation>
+ <translation>Vorhergehendes Dokument öffnen</translation>
</message>
<message>
<source>Open Next Document</source>
- <translation type="unfinished"></translation>
+ <translation>Nächstes Dokument öffnen</translation>
</message>
<message>
<source>Reopen Last Closed Document</source>
@@ -21854,7 +21868,7 @@ provided they were unmodified before the refactoring.</source>
</message>
<message>
<source>Crash reports are saved in &quot;%1&quot;.</source>
- <translation type="unfinished"></translation>
+ <translation>Absturzberichte werden in &quot;%1&quot; gespeichert.</translation>
</message>
<message>
<source>Crash Reporting</source>
@@ -22178,15 +22192,15 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.</translation>
</message>
<message>
<source>No plugins found.</source>
- <translation type="unfinished"></translation>
+ <translation>Keine Plugins gefunden.</translation>
</message>
<message>
<source>More than one plugin found.</source>
- <translation type="unfinished"></translation>
+ <translation>Mehr als ein Plugin gefunden.</translation>
</message>
<message>
<source>Plugin failed to resolve dependencies:</source>
- <translation type="unfinished"></translation>
+ <translation>Plugin konnte Abhängigkeiten nicht auflösen:</translation>
</message>
<message>
<source>Check Archive</source>
@@ -22198,19 +22212,19 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.</translation>
</message>
<message>
<source>Load plugin immediately</source>
- <translation type="unfinished"></translation>
+ <translation>Plugin sofort laden</translation>
</message>
<message>
<source>%1 will be installed into %2.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 wird in %2 installiert.</translation>
</message>
<message>
<source>Accept Terms and Conditions</source>
- <translation type="unfinished"></translation>
+ <translation>Bedingungen und Konditionen annehmen</translation>
</message>
<message>
<source>I accept the terms and conditions.</source>
- <translation type="unfinished"></translation>
+ <translation>Ich nehme die Bedingungen und Konditionen an.</translation>
</message>
<message>
<source>Canceled.</source>
@@ -22657,11 +22671,11 @@ Doppelklicken Sie einen Eintrag um ihn zu ändern.</translation>
</message>
<message>
<source>Secret storage is not available! Your values will be stored as plaintext in the settings!</source>
- <translation type="unfinished"></translation>
+ <translation>Sicheres Speichern ist nicht verfügbar! Ihre Werte werden in den Einstellungen als Klartext gespeichert!</translation>
</message>
<message>
<source>You can install libsecret or KWallet to enable secret storage.</source>
- <translation type="unfinished"></translation>
+ <translation>Sie können libsecret oder KWallet installieren, um sicheres Speichern zu aktivieren.</translation>
</message>
</context>
<context>
@@ -32134,11 +32148,11 @@ Jetzt Commit ausführen?</translation>
</message>
<message>
<source>All</source>
- <translation type="unfinished">Alle</translation>
+ <translation>Alle</translation>
</message>
<message>
<source>Show log for all local branches.</source>
- <translation type="unfinished"></translation>
+ <translation>Log für alle lokalen Branches anzeigen</translation>
</message>
<message>
<source>Git Diff &quot;%1&quot;</source>
@@ -32735,11 +32749,11 @@ wenn es außerhalb von git bash aufgerufen wird.</translation>
</message>
<message>
<source>Show commit subject</source>
- <translation type="unfinished"></translation>
+ <translation>Titel des Commits anzeigen</translation>
</message>
<message>
<source>Adds the commit subject directly to the annotation.</source>
- <translation type="unfinished"></translation>
+ <translation>Fügt den Titel des Commits direkt zur Annotation hinzu.</translation>
</message>
<message>
<source>Ignore whitespace changes</source>
@@ -32975,7 +32989,7 @@ wenn es außerhalb von git bash aufgerufen wird.</translation>
</message>
<message>
<source>Change #, hash, tr:id, owner:email or reviewer:email</source>
- <translation type="unfinished"></translation>
+ <translation>Änderungs-#, Hash, tr:id, owner:email oder reviewer:email</translation>
</message>
<message>
<source>&amp;Query:</source>
@@ -33404,7 +33418,7 @@ Nicht markiert - Die Änderung ist kein Entwurf.</translation>
</message>
<message>
<source>Hash</source>
- <translation type="unfinished"></translation>
+ <translation>Hash</translation>
</message>
<message>
<source>Soft</source>
@@ -33692,20 +33706,20 @@ Leer lassen, um das Dateisystem zu durchsuchen.</translation>
<message>
<source>Log Current Selection</source>
<comment>Avoid translating &quot;Log&quot;</comment>
- <translation type="unfinished"></translation>
+ <translation>Log der aktuellen Auswahl</translation>
</message>
<message>
<source>Log of &quot;%1&quot; Selection</source>
<comment>Avoid translating &quot;Log&quot;</comment>
- <translation type="unfinished"></translation>
+ <translation>Log der Auswahl in &quot;%1</translation>
</message>
<message>
<source>Meta+G,Meta+S</source>
- <translation type="unfinished"></translation>
+ <translation>Meta+G,Meta+S</translation>
</message>
<message>
<source>Alt+G,Alt+S</source>
- <translation type="unfinished">Alt+G,Alt+S</translation>
+ <translation>Alt+G,Alt+S</translation>
</message>
<message>
<source>Meta+G,Meta+B</source>
@@ -33785,37 +33799,37 @@ Leer lassen, um das Dateisystem zu durchsuchen.</translation>
</message>
<message>
<source>Current &amp;Project Directory</source>
- <translation type="unfinished"></translation>
+ <translation>Aktuelles &amp;Projektverzeichnis</translation>
</message>
<message>
<source>Diff Project Directory</source>
<comment>Avoid translating &quot;Diff&quot;</comment>
- <translation type="unfinished"></translation>
+ <translation>Diff des Projektverzeichnisses</translation>
</message>
<message>
<source>Diff Directory of Project &quot;%1&quot;</source>
<comment>Avoid translating &quot;Diff&quot;</comment>
- <translation type="unfinished"></translation>
+ <translation>Diff des Projektverzeichnisses von &quot;%1</translation>
</message>
<message>
<source>Log Project Directory</source>
<comment>Avoid translating &quot;Log&quot;</comment>
- <translation type="unfinished"></translation>
+ <translation>Log des Projektverzeichnisses</translation>
</message>
<message>
<source>Log Directory of Project &quot;%1&quot;</source>
<comment>Avoid translating &quot;Log&quot;</comment>
- <translation type="unfinished"></translation>
+ <translation>Log des Projektverzeichnisses von &quot;%1&quot;</translation>
</message>
<message>
<source>Clean Project Directory...</source>
<comment>Avoid translating &quot;Clean&quot;</comment>
- <translation type="unfinished"></translation>
+ <translation>Clean des Projektverzeichnisses...</translation>
</message>
<message>
<source>Clean Directory of Project &quot;%1&quot;...</source>
<comment>Avoid translating &quot;Clean&quot;</comment>
- <translation type="unfinished"></translation>
+ <translation>Clean des Projektverzeichnisses von &quot;%1&quot;...</translation>
</message>
<message>
<source>Meta+G,Meta+C</source>
@@ -36336,7 +36350,7 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan
</message>
<message>
<source>No client selected</source>
- <translation type="unfinished"></translation>
+ <translation>Kein Client ausgewählt</translation>
</message>
<message>
<source>Language Client Inspector</source>
@@ -36352,7 +36366,7 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan
</message>
<message>
<source>Send message</source>
- <translation type="unfinished"></translation>
+ <translation>Nachricht senden</translation>
</message>
<message>
<source>Log</source>
@@ -36553,19 +36567,19 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan
</message>
<message>
<source>Lua</source>
- <translation type="unfinished"></translation>
+ <translation>Lua</translation>
</message>
<message>
<source>New Script...</source>
- <translation type="unfinished"></translation>
+ <translation>Neues Skript...</translation>
</message>
<message>
<source>Scripting</source>
- <translation type="unfinished"></translation>
+ <translation>Skripten</translation>
</message>
<message>
<source>Run Current Script</source>
- <translation type="unfinished"></translation>
+ <translation>Aktuelles Skript ausführen</translation>
</message>
<message>
<source>Failed to load plugin %1: %2</source>
@@ -36573,19 +36587,19 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan
</message>
<message>
<source>Run script &quot;%1&quot;</source>
- <translation type="unfinished"></translation>
+ <translation>Skript &quot;%1&quot; ausführen</translation>
</message>
<message>
<source>Run</source>
- <translation type="unfinished">Ausführen</translation>
+ <translation>Ausführen</translation>
</message>
<message>
<source>Edit</source>
- <translation type="unfinished"></translation>
+ <translation>Bearbeiten</translation>
</message>
<message>
<source>Failed to read script &quot;%1&quot;: %2</source>
- <translation type="unfinished"></translation>
+ <translation>Das Lesen des Skripts &quot;%1&quot; ist fehlgeschlagen: %2</translation>
</message>
<message>
<source>Cannot prepare extension setup: %1</source>
@@ -36601,11 +36615,11 @@ Für gültige Einstellungen schauen Sie in die Dokumentation des verwendeten Lan
</message>
<message>
<source>Evaluate simple Lua statements.&lt;br&gt;Literal &apos;}&apos; characters must be escaped as &quot;\}&quot;, &apos;\&apos; characters must be escaped as &quot;\\&quot;, &apos;#&apos; characters must be escaped as &quot;\#&quot;, and &quot;%{&quot; must be escaped as &quot;%\{&quot;.</source>
- <translation type="unfinished"></translation>
+ <translation>Einfache Lua-Ausdrücke auswerten.&lt;br&gt;&apos;}&apos;-Zeichen müssen als &quot;\}&quot; maskiert werden, &apos;\&apos;-Zeichen müssen als &quot;\\&quot; maskiert werden, &apos;#&apos;-Zeichen müssen als &quot;\#&quot; maskiert werden, und &quot;%{&quot; muss als &quot;%\{&quot; maskiert werden.</translation>
</message>
<message>
<source>No Lua statement to evaluate.</source>
- <translation type="unfinished"></translation>
+ <translation>Kein auszuwertender Lua-Ausdruck</translation>
</message>
</context>
<context>
@@ -39213,11 +39227,11 @@ Weitere Erklärungen sind möglicherweise in &quot;Ausgabe der Anwendung&quot; z
</message>
<message>
<source>Deploy dependencies</source>
- <translation type="unfinished"></translation>
+ <translation>Deployment für Abhängigkeiten durchführen</translation>
</message>
<message>
<source>Do not just build dependencies, but deploy them as well.</source>
- <translation type="unfinished"></translation>
+ <translation>Abhängigkeiten nicht nur bauen, sondern auch Deployment für sie durchführen.</translation>
</message>
<message>
<source>Configuration is faulty. Check the Issues view for details.</source>
@@ -39523,11 +39537,11 @@ Außer: %2
</message>
<message>
<source>Discarded excessive compile output.</source>
- <translation type="unfinished"></translation>
+ <translation>Übermäßige Ausgaben der Kompilierung wurden verworfen.</translation>
</message>
<message>
<source>Discards compile output that continuously comes in faster than it can be handled.</source>
- <translation type="unfinished"></translation>
+ <translation>Verwirft Ausgaben der Kompilierung, die beständig schneller angefordert werden als sie behandelt werden können.</translation>
</message>
<message>
<source>Files in Current Project</source>
@@ -39884,7 +39898,7 @@ Title of a the cloned RunConfiguration window, text of the window</extracomment>
</message>
<message>
<source>VCS Log Directory</source>
- <translation type="unfinished"></translation>
+ <translation>VCS Log-Verzeichnis</translation>
</message>
<message>
<source>Close Project</source>
@@ -40178,11 +40192,11 @@ Bitte versuchen Sie es erneut.</translation>
</message>
<message>
<source>Create Header File</source>
- <translation type="unfinished"></translation>
+ <translation>Header-Datei erstellen</translation>
</message>
<message>
<source>Create Source File</source>
- <translation type="unfinished"></translation>
+ <translation>Quelldatei erstellen</translation>
</message>
<message>
<source>Expand</source>
@@ -40244,15 +40258,15 @@ Bitte versuchen Sie es erneut.</translation>
</message>
<message>
<source>The following files could not be renamed: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Die folgenden Dateien konnten nicht umbenannt werden: %1</translation>
</message>
<message>
<source>The following files were renamed, but their project files could not be updated accordingly: %1</source>
- <translation type="unfinished"></translation>
+ <translation>Die folgenden Dateien wurden umbenannt, aber ihre Projektdateien konnten nicht entsprechend aktualisiert werden: %1</translation>
</message>
<message>
<source>Renaming Did Not Fully Succeed</source>
- <translation type="unfinished"></translation>
+ <translation>Das Umbennenen war nicht vollständig erfolgreich</translation>
</message>
<message>
<source>Open Project in &quot;%1&quot;</source>
@@ -40314,7 +40328,7 @@ Bitte versuchen Sie es erneut.</translation>
</message>
<message>
<source>%1 Log Directory</source>
- <translation type="unfinished"></translation>
+ <translation>%1 Log des Verzeichnisses</translation>
</message>
<message>
<source>Locates files from all project directories. Append &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the given line number. Append another &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the column number as well.</source>
@@ -41056,7 +41070,7 @@ The name of the build configuration created by default for a generic project.</e
</message>
<message>
<source>Not all compilers are set up correctly.</source>
- <translation type="unfinished"></translation>
+ <translation>Nicht alle Compiler sind richtig konfiguriert.</translation>
</message>
<message>
<source>This toolchain is invalid.</source>
@@ -41753,15 +41767,15 @@ Bitte schließen Sie alle laufenden Instanzen Ihrer Anwendung vor dem Erstellen.
</message>
<message>
<source>%1 does not exist. If you built %2 yourself, check out https://code.qt.io/cgit/qt-creator/binary-artifacts.git/.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 existiert nicht. Wenn Sie %2 selbst gebaut haben, checken Sie https://code.qt.io/cgit/qt-creator/binary-artifacts.git/ aus.</translation>
</message>
<message>
<source>Cannot start %1. Check src\tools\win64interrupt\win64interrupt.c for more information.</source>
- <translation type="unfinished"></translation>
+ <translation>%1 konnte nicht gestartet werden. Weitere Informationen finden Sie in src\tools\win64interrupt\win64interrupt.c.</translation>
</message>
<message>
<source>could not break the process.</source>
- <translation type="unfinished"></translation>
+ <translation>konnte den Prozess nicht unterbrechen.</translation>
</message>
<message>
<source>Cannot kill process with pid %1: %2</source>
@@ -42222,7 +42236,7 @@ Für vollständige Anwendungen erstellen Sie stattdessen eine Qt Quick-Anwendung
</message>
<message>
<source>Creates a Qt Quick application that can have both QML and C++ code. You can build the application and deploy it to desktop, embedded, and mobile target platforms.</source>
- <translation type="unfinished"></translation>
+ <translation>Erstellt eine Qt Quick-Anwendung, die sowohl QML-Code als auch C++-Code enthalten kann. Sie können die Anwendung bauen und auf dem Desktop, Embedded Plattformen und Mobilplattformen bereitstellen.</translation>
</message>
<message>
<source>Creates a QML file with boilerplate code, starting with &quot;import QtQuick&quot;.</source>
@@ -42768,7 +42782,7 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translatio
</message>
<message>
<source>Qt Creator C++ Plugin</source>
- <translation type="unfinished"></translation>
+ <translation>Qt Creator C++-Plugin</translation>
</message>
<message>
<source>Include QQuickItem</source>
@@ -42776,7 +42790,7 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translatio
</message>
<message>
<source>CMake for Qt 6.5 and Later</source>
- <translation type="unfinished"></translation>
+ <translation>CMake für Qt 6.5 und neuer</translation>
</message>
<message>
<source>Qt 6.2</source>
@@ -42792,11 +42806,11 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translatio
</message>
<message>
<source>Create a project that you can open in Qt Design Studio</source>
- <translation type="unfinished"></translation>
+ <translation>Ein Projekt erstellen, das in Qt Design Studio geöffnet werden kann</translation>
</message>
<message>
<source>Creates a project with a structure that is compatible both with Qt Design Studio and with Qt Creator. It contains a .ui.qml form that you can visually edit in Qt Design Studio.</source>
- <translation type="unfinished"></translation>
+ <translation>Erstellt ein Projekt mit einer Struktur, die sowohl mit Qt Design Studio als auch Qt Creator kompatibel ist. Es enthalt ein .ui.qml-Formular, dass Sie in Qt Design Studio visuell bearbeiten können.</translation>
</message>
<message>
<source>Binary</source>
@@ -43480,7 +43494,7 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translatio
</message>
<message>
<source>Subproject &quot;%1&quot; outside of &quot;%2&quot;.</source>
- <translation type="unfinished"></translation>
+ <translation>Unterprojekt &quot;%1&quot; befindet sich außerhalb von &quot;%2&quot;.</translation>
</message>
<message>
<source>Generator is not a object.</source>
@@ -43804,7 +43818,7 @@ Sie sollten nicht mehrere Test-Frameworks im selben Projekt mischen.</translatio
</message>
<message>
<source>&lt;b&gt;Warning:&lt;/b&gt; This file is inside the build directory.</source>
- <translation type="unfinished"></translation>
+ <translation>&lt;b&gt;Warnung:&lt;/b&gt; Diese Datei befindet sich innerhalb des Build-Verzeichnisses.</translation>
</message>
<message>
<source>&lt;b&gt;Warning:&lt;/b&gt; This file is outside the project directory.</source>
@@ -44026,19 +44040,19 @@ Sie werden erhalten.</numerusform>
</message>
<message>
<source>Requesting process to stop ....</source>
- <translation type="unfinished"></translation>
+ <translation>Fordere den Prozess zum Anhalten auf ....</translation>
</message>
<message>
<source>Stopping process forcefully ....</source>
- <translation type="unfinished"></translation>
+ <translation>Erzwinge den Stopp des Prozesses ....</translation>
</message>
<message>
<source>Process unexpectedly did not finish.</source>
- <translation type="unfinished"></translation>
+ <translation>Der Prozess hat sich unerwarteterweise nicht beendet.</translation>
</message>
<message>
<source>Connectivity lost?</source>
- <translation type="unfinished"></translation>
+ <translation>Verbindung verloren?</translation>
</message>
<message>
<source>An error occurred when attempting to write to the process. For example, the process may not be running, or it may have closed its input channel.</source>
@@ -44401,11 +44415,11 @@ Was soll %1 tun?</translation>
</message>
<message>
<source>Discard excessive output</source>
- <translation type="unfinished"></translation>
+ <translation>Übermäßige Ausgaben verwerfen</translation>
</message>
<message>
<source>If this option is enabled, application output will be discarded if it continuously comes in faster than it can be handled.</source>
- <translation type="unfinished"></translation>
+ <translation>Wenn diese Einstellung aktiviert ist, werden Ausgaben der Anwendung verworfen, die beständig schneller angefordert werden als sie behandelt werden können.</translation>
</message>
<message>
<source>Clear old output on a new run</source>
@@ -45183,11 +45197,11 @@ fails because Clang does not understand the target architecture.</source>
</message>
<message>
<source>Clone the configuration to change it. Or, make the changes in the .qtcreator/project.json file.</source>
- <translation type="unfinished"></translation>
+ <translation>Klonen Sie die Konfiguration, um sie zu ändern. Oder führen Sie die Änderungen in der .qtcreator/project.json-Datei durch.</translation>
</message>
<message>
<source>Workspace Manager</source>
- <translation type="unfinished"></translation>
+ <translation>Workspace-Manager</translation>
</message>
<message>
<source>Exclude from Project</source>
@@ -45199,37 +45213,37 @@ fails because Clang does not understand the target architecture.</source>
</message>
<message>
<source>You will need at least one port for QML debugging.</source>
- <translation type="unfinished"></translation>
+ <translation>Sie werden mindestens einen Port für das QML-Debuggen benötigen.</translation>
</message>
<message>
<source>Machine type:</source>
- <translation type="unfinished">Gerätetyp:</translation>
+ <translation>Gerätetyp:</translation>
</message>
<message>
<source>Physical Device</source>
- <translation type="unfinished">Physisches Gerät</translation>
+ <translation>Physisches Gerät</translation>
</message>
<message>
<source>Free ports:</source>
- <translation type="unfinished">Freie Ports:</translation>
+ <translation>Freie Ports:</translation>
</message>
<message>
<source>%1 at &quot;%2&quot;</source>
<extracomment>toolchain &apos;name&apos; at &apos;path&apos;</extracomment>
- <translation type="unfinished"></translation>
+ <translation>%1 in &quot;%2&quot;</translation>
</message>
<message>
<source>&amp;Compiler path</source>
- <translation type="unfinished"></translation>
+ <translation>&amp;Compiler-Pfad</translation>
</message>
<message>
<source>%1 compiler path</source>
<extracomment>%1 = programming language</extracomment>
- <translation type="unfinished"></translation>
+ <translation>%1 Compiler-Pfad</translation>
</message>
<message>
<source>Provide manually</source>
- <translation type="unfinished"></translation>
+ <translation>Manuell bestimmen</translation>
</message>
</context>
<context>
diff --git a/share/qtcreator/translations/qtcreator_fr.ts b/share/qtcreator/translations/qtcreator_fr.ts
index 6014cf39f1d..cc92aaa752d 100644
--- a/share/qtcreator/translations/qtcreator_fr.ts
+++ b/share/qtcreator/translations/qtcreator_fr.ts
@@ -779,6 +779,10 @@ Utilisez AmbientSound.Infinite pour boucler indéfiniment.</translation>
<translation>Tout réduire</translation>
</message>
<message>
+ <source>Edit in Effect Composer</source>
+ <translation>Modifier dans le compositeur d&apos;effet</translation>
+ </message>
+ <message>
<source>Add Light Probe</source>
<translation>Ajouter une sonde de lumière</translation>
</message>
@@ -1393,6 +1397,37 @@ Le chemin doit être relatif.</translation>
</message>
</context>
<context>
+ <name>CameraActionsModel</name>
+ <message>
+ <source>Hide Camera View</source>
+ <translation>Cacher la vue de la caméra</translation>
+ </message>
+ <message>
+ <source>Never show the camera view.</source>
+ <translation>Ne jamais montrer la vue de la caméra.</translation>
+ </message>
+ <message>
+ <source>Show Selected Camera View</source>
+ <translation>Afficher la vue de la caméra sélectionnée</translation>
+ </message>
+ <message>
+ <source>Show the selected camera in the camera view.</source>
+ <translation>Affiche la caméra sélectionnée dans la vue.</translation>
+ </message>
+ <message>
+ <source>Always Show Camera View</source>
+ <translation>Toujours montrer la vue de la caméra</translation>
+ </message>
+ <message>
+ <source>Show the last selected camera in the camera view.</source>
+ <translation>Affiche la dernière caméra sélectionnée dans la vue de la caméra.</translation>
+ </message>
+ <message>
+ <source>Camera view settings</source>
+ <translation>Paramètres de la vue de la caméra</translation>
+ </message>
+</context>
+<context>
<name>CameraSpeedConfigAction</name>
<message>
<source>Open camera speed configuration dialog</source>
@@ -1422,6 +1457,11 @@ Le chemin doit être relatif.</translation>
<source>Reset</source>
<translation>Réinitialiser</translation>
</message>
+ <message>
+ <source>&lt;p&gt;You only have partial control in fly mode. For full control, please
+ enable the &lt;span style=&quot;text-decoration: underline&quot;&gt;Accessibility settings&lt;/span&gt;&lt;/p&gt;</source>
+ <translation>&lt;p&gt;Vous n&apos;avez qu&apos;un contrôle partiel en mode survol. Pour un contrôle complet, veuillez activer les &lt;span style=&quot;text-decoration: underline&quot;&gt;paramètres d&apos;accessibilité&lt;/span&gt;&lt;/p&gt;</translation>
+ </message>
</context>
<context>
<name>CameraToggleAction</name>
@@ -1769,8 +1809,8 @@ Le chemin doit être relatif.</translation>
<translation>Définit la direction du flux des éléments de l&apos;&lt;b&gt;agencement en colonne&lt;/b&gt;.</translation>
</message>
<message>
- <source>Uniform cell size</source>
- <translation>Taille de cellules uniforme</translation>
+ <source>Uniform cell sizes</source>
+ <translation>Tailles de cellule uniforme</translation>
</message>
<message>
<source>Toggles all cells to have a uniform size.</source>
@@ -2167,6 +2207,14 @@ Cela ne peut être annulé.</translation>
<source>User Assets</source>
<translation>Ressources de l&apos;utilisateur</translation>
</message>
+ <message>
+ <source>material</source>
+ <translation>matériau</translation>
+ </message>
+ <message>
+ <source>item</source>
+ <translation>élément</translation>
+ </message>
</context>
<context>
<name>ContentLibraryEffectContextMenu</name>
@@ -2212,6 +2260,10 @@ Cela ne peut être annulé.</translation>
<source>Item is imported to the project</source>
<translation>L&apos;élément est importé dans le projet</translation>
</message>
+ <message>
+ <source>Add an instance to project</source>
+ <translation>Ajouter une instance au projet</translation>
+ </message>
</context>
<context>
<name>ContentLibraryItemContextMenu</name>
@@ -2235,6 +2287,10 @@ Cela ne peut être annulé.</translation>
<source>Remove from Content Library</source>
<translation>Supprimer de la bibliothèque de contenus</translation>
</message>
+ <message>
+ <source>Import bundle</source>
+ <translation>Importer un bundle</translation>
+ </message>
</context>
<context>
<name>ContentLibraryMaterial</name>
@@ -2254,10 +2310,6 @@ Cela ne peut être annulé.</translation>
<context>
<name>ContentLibraryMaterialsView</name>
<message>
- <source>No materials available. Make sure you have internet connection.</source>
- <translation>Aucun matériau disponible. Assurez-vous d&apos;avoir une connexion Internet.</translation>
- </message>
- <message>
<source>&lt;b&gt;Content Library&lt;/b&gt; materials are not supported in Qt5 projects.</source>
<translation>Les matériaux de la &lt;b&gt;bibliothèque de contenus&lt;/b&gt; ne sont pas pris en charge dans les projets Qt5.</translation>
</message>
@@ -2274,6 +2326,10 @@ Cela ne peut être annulé.</translation>
<translation>La &lt;b&gt;bibliothèque de contenus&lt;/b&gt; est désactivée pour un composant non visible.</translation>
</message>
<message>
+ <source>No materials available. Make sure you have an internet connection.</source>
+ <translation>Aucun matériau disponible. Assurez-vous d&apos;avoir une connexion Internet.</translation>
+ </message>
+ <message>
<source>No match found.</source>
<translation>Aucun résultat.</translation>
</message>
@@ -2350,7 +2406,7 @@ Cela ne peut être annulé.</translation>
<context>
<name>ContentLibraryTexturesView</name>
<message>
- <source>No textures available. Make sure you have internet connection.</source>
+ <source>No textures available. Make sure you have an internet connection.</source>
<translation>Aucune texture disponible. Assurez-vous d&apos;avoir une connexion Internet.</translation>
</message>
<message>
@@ -2376,6 +2432,10 @@ Cela ne peut être annulé.</translation>
<source>&lt;b&gt;Content Library&lt;/b&gt; is disabled inside a non-visual component.</source>
<translation>La &lt;b&gt;bibliothèque de contenus&lt;/b&gt; est désactivée pour un composant non visible.</translation>
</message>
+ <message>
+ <source>There are no user assets in the &lt;b&gt;Content Library&lt;/b&gt;.</source>
+ <translation>Il n&apos;y a pas de ressources de l&apos;utilisateur dans la &lt;b&gt;bibliothèque de contenus&lt;/b&gt;.</translation>
+ </message>
</context>
<context>
<name>ContextMenu</name>
@@ -2481,8 +2541,8 @@ Cela ne peut être annulé.</translation>
<translation>Supprimer le bundle %1</translation>
</message>
<message>
- <source>Are you sure you? The action cannot be undone</source>
- <translation>Voulez-vous vraiment supprimer le bundle&#xa0;? Cette action ne peut être annulée</translation>
+ <source>Are you sure? The action cannot be undone.</source>
+ <translation>Voulez-vous vraiment supprimer le bundle&#xa0;? Cette action ne peut être annulée.</translation>
</message>
<message>
<source>Remove</source>
@@ -4237,6 +4297,21 @@ Les identifiants doivent commencer avec une lettre minuscule.</translation>
</message>
</context>
<context>
+ <name>IssuesOutputPanel</name>
+ <message>
+ <source>Issues</source>
+ <translation>Problèmes</translation>
+ </message>
+ <message>
+ <source>Output</source>
+ <translation>Sortie</translation>
+ </message>
+ <message>
+ <source>Clear</source>
+ <translation>Nettoyer</translation>
+ </message>
+</context>
+<context>
<name>ItemDelegateSection</name>
<message>
<source>Item Delegate</source>
@@ -4822,6 +4897,14 @@ ajouter un composant en surbrillance.</translation>
<translation>Choisissez un style pour les contrôles Qt Quick du projet.</translation>
</message>
<message>
+ <source>Show issues.</source>
+ <translation>Afficher les problèmes.</translation>
+ </message>
+ <message>
+ <source>Show application output.</source>
+ <translation>Afficher la sortie de l&apos;application.</translation>
+ </message>
+ <message>
<source>Switch to Design Mode.</source>
<translation>Basculer vers le mode Design.</translation>
</message>
@@ -5102,28 +5185,25 @@ ajouter un composant en surbrillance.</translation>
<source>Add to Content Library</source>
<translation>Ajouter à la bibliothèque de contenus</translation>
</message>
-</context>
-<context>
- <name>MaterialEditorToolBar</name>
<message>
- <source>Apply material to selected model.</source>
- <translation>Appliquer le matériau au modèle sélectionné.</translation>
+ <source>Import Material</source>
+ <translation>Importer un matériau</translation>
</message>
<message>
- <source>Create new material.</source>
- <translation>Créer un nouveau matériau.</translation>
+ <source>Export Material</source>
+ <translation>Exporter un matériau</translation>
</message>
+</context>
+<context>
+ <name>MaterialEditorPreview</name>
<message>
- <source>Delete current material.</source>
- <translation>Supprimer le matériau en cours.</translation>
+ <source>Select preview environment.</source>
+ <translation>Sélectionner un environnement d&apos;aperçu.</translation>
</message>
<message>
- <source>Open material browser.</source>
- <translation>Ouvrir le navigateur de matériaux.</translation>
+ <source>Select preview model.</source>
+ <translation>Sélectionner un modèle d&apos;aperçu.</translation>
</message>
-</context>
-<context>
- <name>MaterialEditorTopSection</name>
<message>
<source>Cone</source>
<translation>Cone</translation>
@@ -5156,15 +5236,29 @@ ajouter un composant en surbrillance.</translation>
<source>Landscape</source>
<translation>Paysage</translation>
</message>
+</context>
+<context>
+ <name>MaterialEditorToolBar</name>
+ <message>
+ <source>Apply material to selected model.</source>
+ <translation>Appliquer le matériau au modèle sélectionné.</translation>
+ </message>
<message>
- <source>Select preview environment.</source>
- <translation>Sélectionner un environnement d’aperçu.</translation>
+ <source>Create new material.</source>
+ <translation>Créer un nouveau matériau.</translation>
</message>
<message>
- <source>Select preview model.</source>
- <translation>Sélectionner un modèle d’aperçu.</translation>
+ <source>Delete current material.</source>
+ <translation>Supprimer le matériau en cours.</translation>
</message>
<message>
+ <source>Open material browser.</source>
+ <translation>Ouvrir le navigateur de matériaux.</translation>
+ </message>
+</context>
+<context>
+ <name>MaterialEditorTopSection</name>
+ <message>
<source>Name</source>
<translation>Nom</translation>
</message>
@@ -6275,11 +6369,13 @@ est en cours.</translation>
<translation>Toutes les définitions syntaxiques sont à jour.</translation>
</message>
<message>
- <source>Downloading new syntax definition for &apos;%1&apos;...</source>
+ <source>Downloading new syntax definition for &apos;%1&apos;…</source>
+ <comment>@info</comment>
<translation>Téléchargement d’une nouvelle définition syntaxique pour «&#xa0;%1&#xa0;»…</translation>
</message>
<message>
- <source>Updating syntax definition for &apos;%1&apos; to version %2...</source>
+ <source>Updating syntax definition for &apos;%1&apos; to version %2…</source>
+ <comment>@info</comment>
<translation>Mise à jour de la définition syntaxique pour «&#xa0;%1&#xa0;» vers la version %2…</translation>
</message>
<message>
@@ -6333,6 +6429,10 @@ est en cours.</translation>
<translation>ProjetSansNom</translation>
</message>
<message>
+ <source>Effect file %1 not found in the project.</source>
+ <translation>Fichier d&apos;effet %1 introuvable dans le projet.</translation>
+ </message>
+ <message>
<source>Effect %1 is not complete.</source>
<translation>L&apos;effet %1 n&apos;est pas complet.</translation>
</message>
@@ -6367,6 +6467,10 @@ Souhaitez-vous éditer cet effet&#xa0;?</translation>
<translation>%1 est un mot clé QML réservé.</translation>
</message>
<message>
+ <source>%1 is a reserved Qml type.</source>
+ <translation>%1 est un type Qml réservé.</translation>
+ </message>
+ <message>
<source>%1 is a reserved property keyword.</source>
<translation>%1 est un mot clé de propriété réservé.</translation>
</message>
@@ -6378,6 +6482,38 @@ Souhaitez-vous éditer cet effet&#xa0;?</translation>
<source>Empty document</source>
<translation>Document vide</translation>
</message>
+ <message>
+ <source>Unsupported bundle file</source>
+ <translation>Fichier de bundle non pris en charge</translation>
+ </message>
+ <message>
+ <source>The chosen bundle was created with an incompatible version of Qt Design Studio</source>
+ <translation>Le bundle sélectionné a été créé avec une version de Qt&#xa0;Design&#xa0;Studio non prise en charge</translation>
+ </message>
+ <message>
+ <source>Component Exists</source>
+ <translation>Le composant existe déjà</translation>
+ </message>
+ <message>
+ <source>A component with the same name &apos;%1&apos; already exists in the project, are you sure you want to overwrite it?</source>
+ <translation>Un composant avec le nom «&#xa0;%1&#xa0;» existe déjà dans le projet. Souhaitez-vous l&apos;écraser&#xa0;?</translation>
+ </message>
+ <message>
+ <source>Import Component</source>
+ <translation>Importation d&apos;un composant</translation>
+ </message>
+ <message>
+ <source>Qt Design Studio Bundle Files (*.%1)</source>
+ <translation>Fichiers de bundle de Qt&#xa0;Design&#xa0;Studio (*.%1)</translation>
+ </message>
+ <message>
+ <source>Export Material</source>
+ <translation>Exportation d&apos;un matériau</translation>
+ </message>
+ <message>
+ <source>Export Component</source>
+ <translation>Exportation d&apos;un composant</translation>
+ </message>
</context>
<context>
<name>QmlDesigner::AbstractEditorDialog</name>
@@ -6758,25 +6894,6 @@ Export des ressources&#xa0;: %2</translation>
</message>
</context>
<context>
- <name>QmlDesigner::BackendModel</name>
- <message>
- <source>Type</source>
- <translation>Type</translation>
- </message>
- <message>
- <source>Name</source>
- <translation>Nom</translation>
- </message>
- <message>
- <source>Singleton</source>
- <translation>Singleton</translation>
- </message>
- <message>
- <source>Local</source>
- <translation>Local</translation>
- </message>
-</context>
-<context>
<name>QmlDesigner::BackgroundAction</name>
<message>
<source>Set the color of the canvas.</source>
@@ -6995,6 +7112,14 @@ Export des ressources&#xa0;: %2</translation>
<translation>Bibliothèque de contenus</translation>
</message>
<message>
+ <source>Texture Exists</source>
+ <translation>La texture existe déjà</translation>
+ </message>
+ <message>
+ <source>A texture with the same name &apos;%1&apos; already exists in the Content Library, are you sure you want to overwrite it?</source>
+ <translation>Une texture avec le nom «&#xa0;%1&#xa0;» existe déjà dans la bibliothèque de contenu. Souhaitez-vous l&apos;écraser&#xa0;?</translation>
+ </message>
+ <message>
<source>3D Item Exists</source>
<translation>L&apos;élément 3D existe déjà</translation>
</message>
@@ -7002,6 +7127,22 @@ Export des ressources&#xa0;: %2</translation>
<source>A 3D item with the same name &apos;%1&apos; already exists in the Content Library, are you sure you want to overwrite it?</source>
<translation>Un élément 3D portant le même nom &apos;%1&apos; existe déjà dans la bibliothèque de contenus. Souhaitez-vous l&apos;écraser&#xa0;?</translation>
</message>
+ <message>
+ <source>Component Exists</source>
+ <translation>Le composant existe déjà</translation>
+ </message>
+ <message>
+ <source>A component with the same name &apos;%1&apos; already exists in the Content Library, are you sure you want to overwrite it?</source>
+ <translation>Un composant avec le nom «&#xa0;%1&#xa0;» existe déjà dans la bibliothèque de contenus. Souhaitez-vous l&apos;écraser&#xa0;?</translation>
+ </message>
+ <message>
+ <source>Unsupported bundle file</source>
+ <translation>Fichier de bundle non supporté</translation>
+ </message>
+ <message>
+ <source>The chosen bundle was created with an incompatible version of Qt Design Studio</source>
+ <translation>Le bundle sélectionné a été créé avec une version de Qt&#xa0;Design&#xa0;Studio non supportée</translation>
+ </message>
</context>
<context>
<name>QmlDesigner::ContentLibraryWidget</name>
@@ -7199,6 +7340,21 @@ Export des ressources&#xa0;: %2</translation>
</message>
</context>
<context>
+ <name>QmlDesigner::Edit3DMaterialsAction</name>
+ <message>
+ <source>Materials</source>
+ <translation>Matériaux</translation>
+ </message>
+ <message>
+ <source>Remove</source>
+ <translation>Supprimer</translation>
+ </message>
+ <message>
+ <source>Edit</source>
+ <translation>Modifier</translation>
+ </message>
+</context>
+<context>
<name>QmlDesigner::Edit3DView</name>
<message>
<source>3D</source>
@@ -7244,10 +7400,6 @@ Export des ressources&#xa0;: %2</translation>
<translation>Éditer le composant</translation>
</message>
<message>
- <source>Edit Material</source>
- <translation>Éditer le matériau</translation>
- </message>
- <message>
<source>Duplicate</source>
<translation>Dupliquer</translation>
</message>
@@ -7394,6 +7546,14 @@ Export des ressources&#xa0;: %2</translation>
<translation>Ajouter à la bibliothèque de contenus</translation>
</message>
<message>
+ <source>Import Component</source>
+ <translation>Importer un composant</translation>
+ </message>
+ <message>
+ <source>Export Component</source>
+ <translation>Exporter un composant</translation>
+ </message>
+ <message>
<source>3D view is not supported in MCU projects.</source>
<translation>La vue 3D n&apos;est pas prise en charge dans les projets MCU.</translation>
</message>
@@ -7704,6 +7864,208 @@ Veuillez vérifier le panneau de sortie pour plus d&apos;informations.</translat
</message>
</context>
<context>
+ <name>QmlDesigner::Import3dDialog</name>
+ <message>
+ <source>Asset Import</source>
+ <translation>Importation de ressources</translation>
+ </message>
+ <message>
+ <source>Imported objects</source>
+ <translation>Objets importés</translation>
+ </message>
+ <message>
+ <source>Import Options</source>
+ <translation>Options d&apos;importation</translation>
+ </message>
+ <message>
+ <source>Show All Options</source>
+ <translation>Afficher toutes les options</translation>
+ </message>
+ <message>
+ <source>Close</source>
+ <translation>Fermer</translation>
+ </message>
+ <message>
+ <source>Import</source>
+ <translation>Importer</translation>
+ </message>
+ <message>
+ <source>Importing:</source>
+ <translation>Importation de&#xa0;:</translation>
+ </message>
+ <message>
+ <source>Locate 3D Asset &quot;%1&quot;</source>
+ <translation>Trouver la ressource 3D «&#xa0;%1&#xa0;»</translation>
+ </message>
+ <message>
+ <source>%1 options</source>
+ <translation>Options %1</translation>
+ </message>
+ <message>
+ <source>No options available for this type.</source>
+ <translation>Aucune option disponible pour ce type.</translation>
+ </message>
+ <message>
+ <source>No simple options available for this type.</source>
+ <translation>Aucune option simple disponible pour ce type.</translation>
+ </message>
+ <message>
+ <source>Preview icon generated for non-existent asset: %1</source>
+ <translation>Icône de prévisualisation générée pour les ressources inexistantes&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Preview generation process crashed.</source>
+ <translation>Le processus de génération de la prévisualisation a planté.</translation>
+ </message>
+ <message>
+ <source>Cancel</source>
+ <translation>Annuler</translation>
+ </message>
+ <message>
+ <source>Accept</source>
+ <translation>Accepter</translation>
+ </message>
+ <message>
+ <source>Object Type: %1
+</source>
+ <translation>Type d&apos;objet&#xa0;: %1
+</translation>
+ </message>
+ <message>
+ <source>Import Size: %1</source>
+ <translation>Taille de l&apos;import&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Import ready for preview: %1</source>
+ <translation>Import prêt pour la prévisualisation&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Click &quot;Accept&quot; to finish the import or adjust options and click &quot;Import&quot; to import again.</source>
+ <translation>Cliquez sur «&#xa0;Accepter&#xa0;» pour finaliser l&apos;importation ou ajustez les options et cliquez sur «&#xa0;Importer&#xa0;» pour importer à nouveau.</translation>
+ </message>
+ <message>
+ <source>Import interrupted.</source>
+ <translation>Importation interrompue.</translation>
+ </message>
+ <message>
+ <source>Import done.</source>
+ <translation>Importation terminée.</translation>
+ </message>
+ <message>
+ <source>Canceling import.</source>
+ <translation>Annulation de l&apos;importation.</translation>
+ </message>
+ <message>
+ <source>Hide Advanced Options</source>
+ <translation>Cacher les options avancées</translation>
+ </message>
+ <message>
+ <source>Removed %1 from the import.</source>
+ <translation>%1 supprimé depuis l&apos;importation.</translation>
+ </message>
+</context>
+<context>
+ <name>QmlDesigner::Import3dImporter</name>
+ <message>
+ <source>Could not create a temporary directory for import.</source>
+ <translation>Impossible de créer un dossier temporaire pour l&apos;importation.</translation>
+ </message>
+ <message>
+ <source>Importing 3D assets.</source>
+ <translation>Importation des ressources 3D.</translation>
+ </message>
+ <message>
+ <source>Attempted to reimport no assets.</source>
+ <translation>Tentative de réimportation sans ressource.</translation>
+ </message>
+ <message>
+ <source>Attempted to reimport non-existing asset: %1</source>
+ <translation>Tentative de réimportation d&apos;une ressource inexistante&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Could not access temporary asset directory: &quot;%1&quot;.</source>
+ <translation>Impossible d&apos;accéder au répertoire temporaire des ressources&#xa0;: «&#xa0;%1&#xa0;».</translation>
+ </message>
+ <message>
+ <source>Import process crashed.</source>
+ <translation>Le processus d&apos;importation a planté.</translation>
+ </message>
+ <message>
+ <source>Import failed for unknown reason.</source>
+ <translation>Échec lors de l&apos;importation pour une raison inconnue.</translation>
+ </message>
+ <message>
+ <source>Asset import process failed: &quot;%1&quot;.</source>
+ <translation>Échec lors du processus d&apos;importation de ressource&#xa0;: «&#xa0;%1&#xa0;».</translation>
+ </message>
+ <message>
+ <source>Parsing files.</source>
+ <translation>Analyse des fichiers.</translation>
+ </message>
+ <message>
+ <source>Skipped import of duplicate asset: &quot;%1&quot;.</source>
+ <translation>Importation ignorée des ressources en double&#xa0;: «&#xa0;%1&#xa0;».</translation>
+ </message>
+ <message>
+ <source>Skipped import of existing asset: &quot;%1&quot;.</source>
+ <translation>Importation ignorée d&apos;une ressource déjà existante&#xa0;: «&#xa0;%1&#xa0;».</translation>
+ </message>
+ <message>
+ <source>No files selected for overwrite, skipping import: &quot;%1&quot;.</source>
+ <translation>Aucun fichier sélectionné pour l&apos;écrasement, importation de «&#xa0;%1&#xa0;» ignorée.</translation>
+ </message>
+ <message>
+ <source>Failed to create qmldir file for asset: &quot;%1&quot;.</source>
+ <translation>Échec lors de la création du fichier qmldir pour la ressource&#xa0;: «&#xa0;%1&#xa0;».</translation>
+ </message>
+ <message>
+ <source>Removing old overwritten assets.</source>
+ <translation>Suppression des anciennes ressources écrasées.</translation>
+ </message>
+ <message>
+ <source>Copying asset files.</source>
+ <translation>Copie des fichiers de ressources.</translation>
+ </message>
+ <message>
+ <source>Overwrite Existing Asset?</source>
+ <translation>Écraser les ressources existantes&#xa0;?</translation>
+ </message>
+ <message>
+ <source>Asset already exists. Overwrite existing or skip?
+&quot;%1&quot;</source>
+ <translation>La ressource existe déjà. Écraser ou passer&#xa0;?
+«&#xa0;%1&#xa0;»</translation>
+ </message>
+ <message>
+ <source>Overwrite Selected Files</source>
+ <translation>Écraser les fichiers sélectionnés</translation>
+ </message>
+ <message>
+ <source>Overwrite All Files</source>
+ <translation>Écraser tous les fichiers</translation>
+ </message>
+ <message>
+ <source>Skip</source>
+ <translation>Passer</translation>
+ </message>
+ <message>
+ <source>Failed to start import 3D asset process.</source>
+ <translation>Échec du démarrage du processus d&apos;importation des ressources 3D.</translation>
+ </message>
+ <message>
+ <source>Updating data model.</source>
+ <translation>Mise à jour du modèle de données.</translation>
+ </message>
+ <message>
+ <source>Failed to insert import statement into qml document.</source>
+ <translation>Échec d&apos;insertion de la déclaration d&apos;importation dans le document qml.</translation>
+ </message>
+ <message>
+ <source>Failed to update imports: %1</source>
+ <translation>Échec de mise à jour des importations&#xa0;: %1</translation>
+ </message>
+</context>
+<context>
<name>QmlDesigner::InsightView</name>
<message>
<source>Qt Insight</source>
@@ -8110,182 +8472,6 @@ Veuillez vérifier le panneau de sortie pour plus d&apos;informations.</translat
</message>
</context>
<context>
- <name>QmlDesigner::ItemLibraryAssetImportDialog</name>
- <message>
- <source>Asset Import</source>
- <translation>Importation de ressources</translation>
- </message>
- <message>
- <source>Import Options</source>
- <translation>Options d&apos;importation</translation>
- </message>
- <message>
- <source>Show All Options</source>
- <translation>Afficher tous les options</translation>
- </message>
- <message>
- <source>Import</source>
- <translation>Importer</translation>
- </message>
- <message>
- <source>Select import options and press &quot;Import&quot; to import the following files:</source>
- <translation>Sélectionnez les options d&apos;importation et appuyez sur &quot;Importer&quot; pour importer les fichiers suivants&#xa0;:</translation>
- </message>
- <message>
- <source>Importing:</source>
- <translation>Importation de&#xa0;:</translation>
- </message>
- <message>
- <source>Locate 3D Asset &quot;%1&quot;</source>
- <translation>Localiser la ressource 3D «&#xa0;%1&#xa0;»</translation>
- </message>
- <message>
- <source>%1 options</source>
- <translation>Options %1</translation>
- </message>
- <message>
- <source>No options available for this type.</source>
- <translation>Aucune option disponible pour ce type.</translation>
- </message>
- <message>
- <source>No simple options available for this type.</source>
- <translation>Aucune option simple disponible pour ce type.</translation>
- </message>
- <message>
- <source>Cancel</source>
- <translation>Annuler</translation>
- </message>
- <message>
- <source>Accept</source>
- <translation>Accepter</translation>
- </message>
- <message>
- <source>Import is ready for preview.</source>
- <translation>Le fichier importé peut être prévisualisé.</translation>
- </message>
- <message>
- <source>Click &quot;Accept&quot; to finish the import or adjust options and click &quot;Import&quot; to import again.</source>
- <translation>Cliquez sur «&#xa0;Accepter&#xa0;» pour finaliser l&apos;importation ou ajustez les options et cliquez sur «&#xa0;Importer&#xa0;» pour importer à nouveau.</translation>
- </message>
- <message>
- <source>Close</source>
- <translation>Fermer</translation>
- </message>
- <message>
- <source>Import interrupted.</source>
- <translation>Importation interrompue.</translation>
- </message>
- <message>
- <source>Import done.</source>
- <translation>Importation finie.</translation>
- </message>
- <message>
- <source>Canceling import.</source>
- <translation>Annulation de l&apos;importation.</translation>
- </message>
- <message>
- <source>Hide Advanced Options</source>
- <translation>Cacher les options avancées</translation>
- </message>
-</context>
-<context>
- <name>QmlDesigner::ItemLibraryAssetImporter</name>
- <message>
- <source>Could not create a temporary directory for import.</source>
- <translation>Impossible de créer un dossier temporaire pour l&apos;importation.</translation>
- </message>
- <message>
- <source>Importing 3D assets.</source>
- <translation>Importation des ressources 3D.</translation>
- </message>
- <message>
- <source>Import process crashed.</source>
- <translation>Le processus d’importation a planté.</translation>
- </message>
- <message>
- <source>Import failed for unknown reason.</source>
- <translation>Échec lors de l&apos;importation pour une raison inconnue.</translation>
- </message>
- <message>
- <source>Asset import process failed: &quot;%1&quot;.</source>
- <translation>Échec lors du processus d&apos;importation de ressource&#xa0;: «&#xa0;%1&#xa0;».</translation>
- </message>
- <message>
- <source>Parsing files.</source>
- <translation>Analyse des fichiers.</translation>
- </message>
- <message>
- <source>Skipped import of duplicate asset: &quot;%1&quot;.</source>
- <translation>Importation ignorée car doublon dans les ressources&#xa0;: «&#xa0;%1&#xa0;».</translation>
- </message>
- <message>
- <source>Skipped import of existing asset: &quot;%1&quot;.</source>
- <translation>Importation ignorée d&apos;une ressource déjà existante&#xa0;: «&#xa0;%1&#xa0;».</translation>
- </message>
- <message>
- <source>No files selected for overwrite, skipping import: &quot;%1&quot;.</source>
- <translation>Aucun fichier sélectionné pour l&apos;écrasement, importation de «&#xa0;%1&#xa0;» ignorée.</translation>
- </message>
- <message>
- <source>Could not access temporary asset directory: &quot;%1&quot;.</source>
- <translation>Impossible d&apos;accéder au répertoire temporaire des ressources&#xa0;: «&#xa0;%1&#xa0;».</translation>
- </message>
- <message>
- <source>Attempted to reimport non-existing asset: %1</source>
- <translation>Tentative de réimportation d&apos;une ressource inexistante&#xa0;: %1</translation>
- </message>
- <message>
- <source>Failed to create qmldir file for asset: &quot;%1&quot;.</source>
- <translation>Échec lors de la création du fichier qmldir pour la ressource&#xa0;: «&#xa0;%1&#xa0;».</translation>
- </message>
- <message>
- <source>Removing old overwritten assets.</source>
- <translation>Suppression des anciennes ressources écrasées.</translation>
- </message>
- <message>
- <source>Copying asset files.</source>
- <translation>Copie des fichiers de ressources.</translation>
- </message>
- <message>
- <source>Overwrite Existing Asset?</source>
- <translation>Écraser les ressources existantes&#xa0;?</translation>
- </message>
- <message>
- <source>Asset already exists. Overwrite existing or skip?
-&quot;%1&quot;</source>
- <translation>La ressource existe déjà. Écraser ou sauter&#xa0;?
-«&#xa0;%1&#xa0;»</translation>
- </message>
- <message>
- <source>Overwrite Selected Files</source>
- <translation>Écraser les fichiers sélectionnés</translation>
- </message>
- <message>
- <source>Overwrite All Files</source>
- <translation>Écraser tous les fichiers</translation>
- </message>
- <message>
- <source>Skip</source>
- <translation>Passer</translation>
- </message>
- <message>
- <source>Failed to start import 3D asset process.</source>
- <translation>Échec du démarrage du processus d&apos;importation des ressources 3D.</translation>
- </message>
- <message>
- <source>Updating data model.</source>
- <translation>Mise à jour du modèle de données.</translation>
- </message>
- <message>
- <source>Failed to insert import statement into qml document.</source>
- <translation>Échec d&apos;insertion de la déclaration d&apos;importation dans le document qml.</translation>
- </message>
- <message>
- <source>Failed to update imports: %1</source>
- <translation>Échec de mise à jour des importations&#xa0;: %1</translation>
- </message>
-</context>
-<context>
<name>QmlDesigner::ItemLibraryImport</name>
<message>
<source>Default Components</source>
@@ -8688,18 +8874,6 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.</tr
<translation>Faire un retour…</translation>
</message>
<message>
- <source>License: Enterprise</source>
- <translation>Licence&#xa0;: Entreprise</translation>
- </message>
- <message>
- <source>License: Professional</source>
- <translation>Licence&#xa0;: Professionnel</translation>
- </message>
- <message>
- <source>Licensee: %1</source>
- <translation>Licencié à&#xa0;: %1</translation>
- </message>
- <message>
<source>Enjoying the %1?</source>
<translation>Vous appréciez %1&#xa0;?</translation>
</message>
@@ -9146,18 +9320,6 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.</tr
<context>
<name>QmlDesigner::TextEditorView</name>
<message>
- <source>Trigger Completion</source>
- <translation>Déclencher la complétion</translation>
- </message>
- <message>
- <source>Meta+Space</source>
- <translation>Meta+Espace</translation>
- </message>
- <message>
- <source>Ctrl+Space</source>
- <translation>Ctrl+Espace</translation>
- </message>
- <message>
<source>Code</source>
<translation>Code</translation>
</message>
@@ -9898,6 +10060,18 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.</tr
<translation>Éditer le matériau</translation>
</message>
<message>
+ <source>Add to Content Library</source>
+ <translation>Ajouter à la bibliothèque de contenus</translation>
+ </message>
+ <message>
+ <source>Import Component</source>
+ <translation>Importer un composant</translation>
+ </message>
+ <message>
+ <source>Export Component</source>
+ <translation>Exporter un composant</translation>
+ </message>
+ <message>
<source>Edit Annotations</source>
<translation>Éditer les annotations</translation>
</message>
@@ -9910,6 +10084,10 @@ Les composants verrouillés ne peuvent être ni modifiés ni sélectionnés.</tr
<translation>Modifier dans la vue 3D</translation>
</message>
<message>
+ <source>Edit in Effect Composer</source>
+ <translation>Éditer dans le compositeur d&apos;effet</translation>
+ </message>
+ <message>
<source>Open Signal Dialog</source>
<translation>Ouvrir la boîte de dialogue des signaux</translation>
</message>
@@ -10696,20 +10874,32 @@ Installez-les manuellement après que l&apos;opération en cours soit finie.
<translation>Nom&#xa0;:</translation>
</message>
<message>
- <source>Device definition:</source>
- <translation>Définition de périphérique&#xa0;:</translation>
+ <source>Target ABI / API:</source>
+ <translation>ABI/API Cible&#xa0;:</translation>
+ </message>
+ <message>
+ <source>Skin definition:</source>
+ <translation>Définition de la skin&#xa0;:</translation>
+ </message>
+ <message>
+ <source>Avd list command failed. %1 %2</source>
+ <translation>Commande Avd de listage échouée. %1 %2</translation>
</message>
<message>
- <source>Architecture (ABI):</source>
- <translation>Architecture (ABI)&#xa0;:</translation>
+ <source>Creating new AVD device...</source>
+ <translation>Création d&apos;un nouveau périphérique AVD…</translation>
</message>
<message>
- <source>Cannot create a new AVD. No suitable Android system image is installed.&lt;br/&gt;Install a system image for the intended Android version from the SDK Manager.</source>
- <translation>Impossible de créer un nouvel AVD. Aucune image système Android adéquate n&apos;est installée. &lt;br/&gt;Installer une image système pour la version Android souhaitée à partir du gestionnaire de SDK.</translation>
+ <source>Install a system image from the SDK Manager first.</source>
+ <translation>Installez d&apos;abord une image système depuis le gestionnaire de SDK.</translation>
</message>
<message>
- <source>Cannot create an AVD for ABI %1.&lt;br/&gt;Install a system image for it from the SDK Manager tab first.</source>
- <translation>Impossible de créer un AVD pour l&apos;ABI %1. &lt;br/&gt;Installez d&apos;abord une image système pour l&apos;AVD à partir de l&apos;onglet gestionnaire de SDK.</translation>
+ <source>No system images found.</source>
+ <translation>Aucune image système n&apos;a été trouvée.</translation>
+ </message>
+ <message>
+ <source>No system images found for %1.</source>
+ <translation>Aucune image système n&apos;a été trouvée pour %1.</translation>
</message>
<message>
<source>Allowed characters are: a-z A-Z 0-9 and . _ -</source>
@@ -10976,6 +11166,10 @@ dans le navigateur système pour un téléchargement manuel.</translation>
<translation>Sélectionner le fichier d&apos;inclusion du projet d&apos;OpenSSL</translation>
</message>
<message>
+ <source>All changes on this page take effect immediately.</source>
+ <translation>Tous les changements effectués sur cette page prennent effet immédiatement.</translation>
+ </message>
+ <message>
<source>Android Settings</source>
<translation>Paramètres Android</translation>
</message>
@@ -11340,10 +11534,6 @@ Le kit supporte «&#xa0;%2&#xa0;», mais le périphérique utilise «&#xa0;%3&#x
<translation>Déployer sur périphérique Android</translation>
</message>
<message>
- <source>Pulling files necessary for debugging.</source>
- <translation>Envoie des fichiers nécessaires au débogage.</translation>
- </message>
- <message>
<source>Cannot find the package name from AndroidManifest.xml nor build.gradle files at &quot;%1&quot;.</source>
<translation>Impossible de trouver le nom du paquet dans les fichiers AndroidManifest.xml ou build.gradle présents dans le répertoire «&#xa0;%1&#xa0;».</translation>
</message>
@@ -11514,12 +11704,6 @@ Cela ne peut être annulé.</translation>
<translation>Échec lors de l&apos;installation du paquet Android.</translation>
</message>
<message>
- <source>Android package installation failed.
-%1</source>
- <translation>Échec lors de l&apos;installation du paquet Android.
-%1</translation>
- </message>
- <message>
<source>Starting Android virtual device failed.</source>
<translation>Le démarrage du périphérique virtuel Android a échoué.</translation>
</message>
@@ -11563,56 +11747,37 @@ Cela ne peut être annulé.</translation>
<translation>Aucun port libre n’est disponible sur l’hôte pour le débogage.QML.</translation>
</message>
<message>
- <source>Failed to find application directory.</source>
- <translation>Impossible de trouver le répertoire de l&apos;application.</translation>
- </message>
- <message>
- <source>Cannot find C++ debug server in NDK installation.</source>
- <translation>Impossible de trouver le serveur de débogage C++ dans l&apos;installation NDK.</translation>
- </message>
- <message>
- <source>The lldb-server binary has not been found.</source>
- <translation>Le binaire lldb-server n&apos;a pu être trouvé.</translation>
- </message>
- <message>
- <source>Cannot copy C++ debug server.</source>
- <translation>Impossible de copier le serveur de débogage C++.</translation>
+ <source>Failed to forward %1 debugging ports.</source>
+ <extracomment>%1 = QML/JDB/C++</extracomment>
+ <translation>Échec du transfert des ports de débogage %1.</translation>
</message>
<message>
- <source>Failed to start the activity.</source>
- <translation>Impossible de démarrer l&apos;activité.</translation>
+ <source>Activity Manager error: %1</source>
+ <translation>Erreur du gestionnaire d&apos;activités&#xa0;: %1</translation>
</message>
<message>
- <source>Activity Manager threw the error: %1</source>
- <translation>Le gestionnaire d&apos;activités a envoyé l&apos;erreur&#xa0;: %1</translation>
+ <source>Android target &quot;%1&quot; terminated.</source>
+ <translation>La cible Android «&#xa0;%1&#xa0;» s&apos;est terminée.</translation>
</message>
<message>
- <source>Failed to start debugger server.</source>
- <translation>Impossible de démarrer le serveur de débogage.</translation>
+ <source>Android target &quot;%1&quot; died.</source>
+ <translation>La cible Android «&#xa0;%1&#xa0;» s&apos;est arrêtée.</translation>
</message>
<message>
- <source>Failed to forward JDB debugging ports.</source>
- <translation>Impossible de transférer les ports de débogage JDB.</translation>
- </message>
- <message>
- <source>Failed to start JDB.</source>
- <translation>Impossible de démarrer JDB.</translation>
- </message>
- <message>
- <source>Cannot attach JDB to the running application.</source>
- <translation>Impossible d&apos;attacher JDB à l&apos;application en cours d&apos;exécution.</translation>
+ <source>Failed to find application directory.</source>
+ <translation>Impossible de trouver le répertoire de l&apos;application.</translation>
</message>
<message>
- <source>&quot;%1&quot; died.</source>
- <translation>«&#xa0;%1&#xa0;» s&apos;est arrêtée.</translation>
+ <source>Cannot find C++ debug server in NDK installation.</source>
+ <translation>Impossible de trouver le serveur de débogage C++ dans l&apos;installation NDK.</translation>
</message>
<message>
- <source>Failed to forward C++ debugging ports.</source>
- <translation>Échec du transfert des ports de débogage C++.</translation>
+ <source>The lldb-server binary has not been found.</source>
+ <translation>Le binaire lldb-server n&apos;a pu être trouvé.</translation>
</message>
<message>
- <source>Failed to forward QML debugging ports.</source>
- <translation>Échec du transfert des ports de débogage QML.</translation>
+ <source>Cannot copy C++ debug server.</source>
+ <translation>Impossible de copier le serveur de débogage C++.</translation>
</message>
<message>
<source>General</source>
@@ -11735,10 +11900,6 @@ Cela ne peut être annulé.</translation>
<translation>Aller à l’erreur</translation>
</message>
<message>
- <source>Target API:</source>
- <translation>API cible&#xa0;:</translation>
- </message>
- <message>
<source> MiB</source>
<translation> Mio</translation>
</message>
@@ -11839,28 +12000,25 @@ Cela ne peut être annulé.</translation>
<translation>Bibliothèques (*.so)</translation>
</message>
<message>
- <source>No application .pro file found in this project.</source>
- <translation>Aucun fichier d’application .pro n’a été trouvé dans ce projet.</translation>
+ <source>No application build targets found in this project.</source>
+ <translation>Aucune cible de compilation pour l&apos;application n&apos;a été trouvée pour ce projet.</translation>
</message>
<message>
- <source>No Application .pro File</source>
- <translation>Aucun ficher d’application .pro</translation>
+ <source>No Application Build Target</source>
+ <translation>Aucune cible de compilation pour l&apos;application</translation>
</message>
<message>
- <source>Select the .pro file for which you want to create the Android template files.</source>
- <translation>Sélectionnez le fichier .pro pour lequel vous souhaitez créer les modèles de fichiers Android.</translation>
+ <source>Select the build target for which to create the Android templates.</source>
+ <translation>Sélectionnez la cible de compilation pour laquelle créer les modèles Android.</translation>
</message>
<message>
- <source>.pro file:</source>
- <translation>Fichier .pro&#xa0;:</translation>
+ <source>Build target:</source>
+ <translation>Cible de compilation&#xa0;:</translation>
</message>
<message>
- <source>Select a .pro File</source>
- <translation>Sélectionner un fichier .pro</translation>
- </message>
- <message>
- <source>Android package source directory:</source>
- <translation>Répertoire des sources du paquet Android&#xa0;:</translation>
+ <source>Select a build target</source>
+ <translatorcomment>Titre</translatorcomment>
+ <translation>Sélectionner une cible de compilation</translation>
</message>
<message>
<source>The Android package source directory cannot be the same as the project directory.</source>
@@ -11871,20 +12029,20 @@ Cela ne peut être annulé.</translation>
<translation>Copier les fichiers Gradle dans le répertoire Android</translation>
</message>
<message>
- <source>It is highly recommended if you are planning to extend the Java part of your Qt application.</source>
+ <source>It is highly recommended if you are planning to extend the Java side of your Qt application.</source>
<translation>Hautement recommandé si vous souhaitez étendre la partie Java de votre application Qt.</translation>
</message>
<message>
<source>Select the Android package source directory.
-The files in the Android package source directory are copied to the build directory&apos;s Android directory and the default files are overwritten.</source>
+The files in the Android package source directory will be copied to the Android build directory and the default templates will be overwritten.</source>
<translation>Sélectionner le répertoire source du paquet Android.
-Les fichiers du répertoire source du paquet Android sont copiés dans le répertoire de compilation Android et les fichiers par défaut sont écrasés.</translation>
+Les fichiers du répertoire source du paquet Android seront copiés dans le répertoire de compilation Android et les modèles par défaut sont écrasés.</translation>
</message>
<message>
- <source>The Android template files will be created in the %1 set in the .pro file.</source>
- <translation>Les fichiers modèles Android seront créés dans %1 défini dans le fichier .pro.</translation>
+ <source>The Android template files will be created under the %1 path that is set in the project file.</source>
+ <translation>Les fichiers modèles Android seront créés à l&apos;emplacement %1 défini dans le fichier du projet.</translation>
</message>
<message>
<source>Create Android Template Files Wizard</source>
@@ -12004,94 +12162,6 @@ Les fichiers du répertoire source du paquet Android sont copiés dans le réper
<translation>Configurer Android</translation>
</message>
<message>
- <source>Configure Android...</source>
- <translation>Configurer Android…</translation>
- </message>
- <message>
- <source>%1 needs additional settings to enable Android support. You can configure those settings in the Options dialog.</source>
- <translation>%1 nécessite des paramètres supplémentaires pour activer le support d&apos;Android. Vous pouvez les définir dans la boîte de dialogue des options.</translation>
- </message>
- <message>
- <source>%1 has been stopped.</source>
- <translation>%1 a été arrêté.</translation>
- </message>
- <message>
- <source>Selected device is invalid.</source>
- <translation>Le périphérique sélectionné est invalide.</translation>
- </message>
- <message>
- <source>Selected device is disconnected.</source>
- <translation>Le périphérique sélectionné est déconnecté.</translation>
- </message>
- <message>
- <source>Launching AVD.</source>
- <translation>Démarrage d&apos;AVD.</translation>
- </message>
- <message>
- <source>Could not start AVD.</source>
- <translation>Impossible de démarrer AVD.</translation>
- </message>
- <message>
- <source>No valid AVD has been selected.</source>
- <translation>Aucun AVD valide n&apos;est sélectionné.</translation>
- </message>
- <message>
- <source>Checking if %1 app is installed.</source>
- <translation>Vérification si l&apos;application %1 est installée.</translation>
- </message>
- <message>
- <source>ABI of the selected device is unknown. Cannot install APK.</source>
- <translation>L&apos;ABI du périphérique sélectionné est inconnue. Impossible d&apos;installer l&apos;APK.</translation>
- </message>
- <message>
- <source>Cannot install %1 app for %2 architecture. The appropriate APK was not found in resources folders.</source>
- <translation>Impossible d&apos;installer l&apos;application %1 pour l&apos;architecture %2. L&apos;APK adéquat n&apos;a pas été trouvé dans les dossiers de ressources.</translation>
- </message>
- <message>
- <source>Installing %1 APK.</source>
- <translation>Installation de l&apos;APK %1.</translation>
- </message>
- <message>
- <source>Too many .qmlproject files in your project. Open directly the .qmlproject file you want to work with and then run the preview.</source>
- <translation>Trop de fichiers .qmlproject dans votre projet. Ouvrez directement le fichier .qmlproject sur lequel vous souhaitez travailler et exécutez la prévisualisation.</translation>
- </message>
- <message>
- <source>No .qmlproject file found among project files.</source>
- <translation>Aucun fichier .qmlproject trouvé parmi les fichiers du projet.</translation>
- </message>
- <message>
- <source>Could not gather information on project files.</source>
- <translation>Impossible de récupérer des informations sur les fichiers du projet.</translation>
- </message>
- <message>
- <source>Could not create file for %1 &quot;%2&quot;.</source>
- <translation>Impossible de créer un fichier pour %1 «&#xa0;%2&#xa0;».</translation>
- </message>
- <message>
- <source>A timeout occurred running &quot;%1&quot;.</source>
- <translation>Un dépassement de délai s&apos;est produit en exécutant «&#xa0;%1&#xa0;».</translation>
- </message>
- <message>
- <source>Crash while creating file for %1 &quot;%2&quot;.</source>
- <translation>Plantage lors de la création de fichiers pour %1 «&#xa0;%2&#xa0;».</translation>
- </message>
- <message>
- <source>Creating file for %1 failed. &quot;%2&quot; (exit code %3).</source>
- <translation>Échec de création d&apos;un fichier pour %1. «&#xa0;%2&#xa0;» (code d&apos;erreur %3).</translation>
- </message>
- <message>
- <source>Uploading files.</source>
- <translation>Transfert des fichiers.</translation>
- </message>
- <message>
- <source>Starting %1.</source>
- <translation>Démarrage de %1.</translation>
- </message>
- <message>
- <source>%1 is running.</source>
- <translation>%1 est en cours d’exécution.</translation>
- </message>
- <message>
<source>NDK is not configured in Devices &gt; Android.</source>
<translation>Le NDK n&apos;est pas configuré dans Périphériques &gt; Android.</translation>
</message>
@@ -12120,10 +12190,6 @@ Les fichiers du répertoire source du paquet Android sont copiés dans le réper
<translation>Commandes shell à lancer sur le périphérique après l&apos;arrêt&#xa0;:</translation>
</message>
<message>
- <source>&quot;%1&quot; terminated.</source>
- <translation>«&#xa0;%1&#xa0;» terminé.</translation>
- </message>
- <message>
<source>Encountered SSL errors, download is aborted.</source>
<translation>Erreurs SSL rencontrées. Le téléchargement a été annulé.</translation>
</message>
@@ -12453,6 +12519,14 @@ le fichier manifeste et d&apos;écraser vos paramètres. Accepter l&apos;écrase
<translation>Désactive les mises à jour automatiques reposant sur la configuration d&apos;exécution actuelle et permet la personnalisation des valeurs.</translation>
</message>
<message>
+ <source>Restart if running:</source>
+ <translation>Redémarrer si en cours d&apos;exécution&#xa0;:</translation>
+ </message>
+ <message>
+ <source>Restarts the application in case it is already running.</source>
+ <translation>Redémarre l&apos;application si celle-ci est déjà en cours d&apos;exécution.</translation>
+ </message>
+ <message>
<source>Controller:</source>
<translation>Contrôleur&#xa0;:</translation>
</message>
@@ -13357,6 +13431,10 @@ Voir la documentation de Google Test pour plus d&apos;informations sur les filtr
<translation>Résultats des tests</translation>
</message>
<message>
+ <source>Show Durations</source>
+ <translation>Afficher les temps</translation>
+ </message>
+ <message>
<source>Pass</source>
<translation>Succès</translation>
</message>
@@ -13830,38 +13908,10 @@ Avertissement&#xa0;: fonctionnalité expérimentale pouvant entraîner un échec
<comment>Display name for AutotoolsProjectManager::ConfigureStep id.</comment>
<translation>Configurer</translation>
</message>
- <message>
- <source>Parsing %1 in directory %2</source>
- <translation>Analyse %1 dans le répertoire %2</translation>
- </message>
- <message>
- <source>Parsing directory %1</source>
- <translation>Analyse du répertoire %1</translation>
- </message>
</context>
<context>
<name>QtC::Axivion</name>
<message>
- <source>Project:</source>
- <translation>Projet&#xa0;:</translation>
- </message>
- <message>
- <source>Lines of code:</source>
- <translation>Lignes de code&#xa0;:</translation>
- </message>
- <message>
- <source>Analysis timestamp:</source>
- <translation>Analyse des horodatages&#xa0;:</translation>
- </message>
- <message>
- <source>unknown</source>
- <translation>inconnu</translation>
- </message>
- <message>
- <source>Total:</source>
- <translation>Total&#xa0;:</translation>
- </message>
- <message>
<source>Owner</source>
<translation>Propriétaire</translation>
</message>
@@ -13875,64 +13925,65 @@ Avertissement&#xa0;: fonctionnalité expérimentale pouvant entraîner un échec
<translation>Nombre de lignes totales&#xa0;:</translation>
</message>
<message>
- <source>No Data</source>
- <translation>Aucune donnée</translation>
+ <source>Open Preferences...</source>
+ <translation>Ouvrir les préférences…</translation>
</message>
<message>
- <source>Show dashboard</source>
- <translation>Afficher le tableau de bord</translation>
+ <source>Configure dashboards in Preferences &gt; Axivion &gt; General.</source>
+ <translation>Configurer les tableaux de bord dans Préférences &gt; Axivion &gt; Général.</translation>
</message>
<message>
- <source>Search for issues</source>
- <translation>Recherche des problèmes</translation>
+ <source>None</source>
+ <translation>Aucun</translation>
</message>
<message>
- <source>Open Issue in Dashboard</source>
- <translation>Ouvrir le problème dans le tableau de bord</translation>
+ <source>No Data</source>
+ <translation>Aucune donnée</translation>
</message>
<message>
- <source>Open Table in Dashboard</source>
- <translation>Ouvrir le tableau dans le tableau de bord</translation>
+ <source>Issues</source>
+ <translation>Problèmes</translation>
</message>
<message>
- <source>Copy Dashboard Link to Clipboard</source>
- <translation>Copier le lien du tableau de bord dans le presse-papier</translation>
+ <source>Issue Details</source>
+ <translation>Détails des problèmes</translation>
</message>
<message>
- <source>Axivion</source>
- <translation>Axivion</translation>
+ <source>Reload</source>
+ <translation>Recharger</translation>
</message>
<message>
- <source>Show rule details</source>
- <translation>Afficher le détail de la règle</translation>
+ <source>Show Inline Issues</source>
+ <translation>Afficher les problèmes en ligne</translation>
</message>
<message>
- <source>Dashboard projects:</source>
- <translation>Projets de tableau de bord&#xa0;:</translation>
+ <source>Show Issue Annotations Inline</source>
+ <translation>Afficher les problèmes avec des annotations en ligne</translation>
</message>
<message>
- <source>Fetch Projects</source>
- <translation>Récupérer les projets</translation>
+ <source>Show Online Filter Help</source>
+ <translation>Afficher l&apos;aide en ligne des filtres</translation>
</message>
<message>
- <source>Link Project</source>
- <translation>Lier le projet</translation>
+ <source>Open Issue in Dashboard</source>
+ <translation>Ouvrir le problème dans le tableau de bord</translation>
</message>
<message>
- <source>Unlink Project</source>
- <translation>Délier le projet</translation>
+ <source>Open Table in Dashboard</source>
+ <translation>Ouvrir le tableau dans le tableau de bord</translation>
</message>
<message>
- <source>This project is not linked to a dashboard project.</source>
- <translation>Ce projet n&apos;est pas lié à un projet de tableau de bord.</translation>
+ <source>Copy Dashboard Link to Clipboard</source>
+ <translation>Copier le lien du tableau de bord dans le presse-papier</translation>
</message>
<message>
- <source>This project is linked to &quot;%1&quot;.</source>
- <translation>Ce projet est lié à «&#xa0;%1&#xa0;».</translation>
+ <source>Axivion</source>
+ <translation>Axivion</translation>
</message>
<message>
- <source>Incomplete or misconfigured settings.</source>
- <translation>Paramètres incomplets ou mal configurés.</translation>
+ <source>Show Issue Properties</source>
+ <translatorcomment>propriétés n&apos;est peut être pas le meilleur mot ici. Informations?</translatorcomment>
+ <translation>Afficher les propriétés des problèmes</translation>
</message>
<message>
<source>Certificate Error</source>
@@ -13991,10 +14042,6 @@ Utilisateur&#xa0;: %2</translation>
<translation>Erreur de récupération des informations du tableau de bord.</translation>
</message>
<message>
- <source>The DashboardInfo doesn&apos;t contain project &quot;%1&quot;.</source>
- <translation>Les informations du tableau de bord ne contiennent pas le projet «&#xa0;%1&#xa0;».</translation>
- </message>
- <message>
<source>The activated link appears to be external.
Do you want to open &quot;%1&quot; with its default application?</source>
<translation>Le lien activé semble être externe.
@@ -14021,6 +14068,10 @@ Souhaitez-vous ouvrir «&#xa0;%1&#xa0;» avec l&apos;application par défaut&#xa
<translation>Affiche les problèmes dans la barre de défilement.</translation>
</message>
<message>
+ <source>Axivion: Deleting API token for %1 as respective dashboard server was removed.</source>
+ <translation>Axivion&#xa0;: suppression du jeton d&apos;API pour %1 car le serveur de tableau de bord a été supprimé.</translation>
+ </message>
+ <message>
<source>Username:</source>
<translation>Nom d&apos;utilisateur&#xa0;:</translation>
</message>
@@ -14065,13 +14116,81 @@ Souhaitez-vous ouvrir «&#xa0;%1&#xa0;» avec l&apos;application par défaut&#xa
<translation>Modifier la configuration du tableau de bord</translation>
</message>
<message>
+ <source>Project name:</source>
+ <translation>Nom du projet&#xa0;:</translation>
+ </message>
+ <message>
+ <source>Analysis path:</source>
+ <translation>Emplacement à analyser&#xa0;:</translation>
+ </message>
+ <message>
+ <source>Local path:</source>
+ <translation>Emplacement local&#xa0;:</translation>
+ </message>
+ <message>
+ <source>Project Name</source>
+ <translation>Nom du projet</translation>
+ </message>
+ <message>
+ <source>Analysis Path</source>
+ <translation>Emplacement à analyser</translation>
+ </message>
+ <message>
+ <source>Local Path</source>
+ <translation>Emplacement local</translation>
+ </message>
+ <message>
+ <source>Add</source>
+ <translation>Ajouter</translation>
+ </message>
+ <message>
+ <source>Delete</source>
+ <translation>Supprimer</translation>
+ </message>
+ <message>
+ <source>Move Up</source>
+ <translation>Déplacer vers le haut</translation>
+ </message>
+ <message>
+ <source>Move Down</source>
+ <translation>Déplacer vers le bas</translation>
+ </message>
+ <message>
<source>General</source>
<translation>Général</translation>
</message>
<message>
+ <source>Path Mapping</source>
+ <translation>Correspondance des emplacements</translation>
+ </message>
+ <message>
<source>Fetching...</source>
<translation>Récupération…</translation>
</message>
+ <message>
+ <source>Allows for filters combined with &amp; as logical AND, | as logical OR and ! as logical NOT. The filters may contain * to match sequences of arbitrary characters. If a single filter is quoted with double quotes it will be matched on the complete string. Some filter characters require quoting of the filter expression with double quotes. If inside double quotes you need to escape &quot; and \ with a backslash.
+Some examples:
+
+a matches issues where the value contains the letter &apos;a&apos;
+&quot;abc&quot; matches issues where the value is exactly &apos;abc&apos;
+!abc matches issues whose value does not contain &apos;abc&apos;
+(ab | cd) &amp; !ef matches issues with values containing &apos;ab&apos; or &apos;cd&apos; but not &apos;ef&apos;
+&quot;&quot; matches issues having an empty value in this column
+!&quot;&quot; matches issues having any non-empty value in this column</source>
+ <translation>Les filtres assemblés avec &apos;&amp;&apos; pour le ET logique, &apos;|&apos; pour le OU logique et &apos;!&apos; pour le NON logique sont autorisés. Les filtres peuvent contenir des &apos;*&apos; pour correspondre à une séquence de caractères arbitraires. Si un filtre est placé entre guillemets, il correspondra à la chaîne de caractères complète. Certains caractères du filtre nécessitent de placer l&apos;expression du filtre entre guillemets. À l&apos;intérieur des guillemets, vous devez échapper les &apos;&quot;&apos; avec un &apos;\&apos;.
+Voici quelques exemples&#xa0;:
+
+a permet de trouver les problèmes contenant la lettre &apos;a&apos;
+&quot;abc&quot; permet de trouver les problèmes où la valeur est exactement &apos;abc&apos;
+!abc permet de trouver les problèmes où la valeur ne contient pas &apos;abc&apos;
+(ab | cb) &amp; !ef permet de trouver les problèmes contenant la valeur &apos;ab&apos; ou &apos;cd&apos; mais pas &apos;ef&apos;
+&quot;&quot; permet de trouver les problèmes ayant une valeur vide dans cette colonne
+!&quot;&quot; permet de trouver les problèmes n&apos;ayant pas une valeur vide dans cette colonne</translation>
+ </message>
+ <message>
+ <source>Apply</source>
+ <translation>Appliquer</translation>
+ </message>
</context>
<context>
<name>QtC::BareMetal</name>
@@ -14753,10 +14872,6 @@ Souhaitez-vous ouvrir «&#xa0;%1&#xa0;» avec l&apos;application par défaut&#xa
<translation>IAREW</translation>
</message>
<message>
- <source>&amp;Compiler path:</source>
- <translation>&amp;Chemin du compilateur&#xa0;:</translation>
- </message>
- <message>
<source>Platform codegen flags:</source>
<translation>Flags de plateforme de la génération de code&#xa0;:</translation>
</message>
@@ -15931,6 +16046,22 @@ Par exemple, «&#xa0;Revision&#xa0;: 15&#xa0;» laissera la branche à la révis
<translation>Ctrl+Alt+B</translation>
</message>
<message>
+ <source>Build &amp;Subproject &quot;%1&quot;</source>
+ <translation>Compiler le &amp;sous-projet «&#xa0;%1&#xa0;»</translation>
+ </message>
+ <message>
+ <source>Build &amp;Subproject</source>
+ <translation>Compiler le &amp;sous-projet</translation>
+ </message>
+ <message>
+ <source>Rebuild</source>
+ <translation>Recompiler</translation>
+ </message>
+ <message>
+ <source>Clean</source>
+ <translation>Nettoyer</translation>
+ </message>
+ <message>
<source>Re-generates the kits that were created for CMake presets. All manual modifications to the CMake project settings will be lost.</source>
<translation>Régénère les kits qui ont été créés pour les préréglages CMake. Toutes modifications manuelles aux paramètres du projet CMake sera perdue.</translation>
</message>
@@ -16348,6 +16479,10 @@ Par exemple, «&#xa0;Revision&#xa0;: 15&#xa0;» laissera la branche à la révis
<translation>Source de détection : «&#xa0;%1&#xa0;»</translation>
</message>
<message>
+ <source>None</source>
+ <translation>Aucun</translation>
+ </message>
+ <message>
<source> (Default)</source>
<translation> (par défaut)</translation>
</message>
@@ -16520,6 +16655,10 @@ Par exemple, «&#xa0;Revision&#xa0;: 15&#xa0;» laissera la branche à la révis
<translation>Configuration initiale :</translation>
</message>
<message>
+ <source>Expands to:</source>
+ <translation>Développer en&#xa0;:</translation>
+ </message>
+ <message>
<source>Current Configuration:</source>
<translation>Configuration actuelle :</translation>
</message>
@@ -17148,14 +17287,6 @@ Assurez-vous que la variable CMAKE_BUILD_TYPE contient le champ «&#xa0;Build ty
<translation>Désactiver les diagnostics dans le projet en cours</translation>
</message>
<message>
- <source>Could not retrieve build directory.</source>
- <translation>Impossible d’accéder au répertoire de compilation.</translation>
- </message>
- <message>
- <source>Could not create &quot;%1&quot;: %2</source>
- <translation>Impossible de créer «&#xa0;%1&#xa0;» : %2</translation>
- </message>
- <message>
<source>Clazy Issue</source>
<translation>Problème de Clazy</translation>
</message>
@@ -17766,6 +17897,18 @@ Définissez d’abord un exécutable valide.</translation>
<source>Clazy-Standalone:</source>
<translation>Clazy autonome :</translation>
</message>
+ <message>
+ <source>Compilation database for %1 successfully generated at &quot;%2&quot;.</source>
+ <translation>La base de données de compilation pour %1 a été générée avec succès à l&apos;emplacement «&#xa0;%2&#xa0;».</translation>
+ </message>
+ <message>
+ <source>Generating compilation database for %1 failed: %2</source>
+ <translation>La génération de la base de données de compilation pour %1 a échoué&#xa0;: %2</translation>
+ </message>
+ <message>
+ <source>Generating compilation database for %1 at &quot;%2&quot; ...</source>
+ <translation>Génération de la base de données de compilation pour %1 à l&apos;emplacement «&#xa0;%2&#xa0;»…</translation>
+ </message>
</context>
<context>
<name>QtC::ClassView</name>
@@ -18265,6 +18408,89 @@ Oui :)</translatorcomment>
</message>
</context>
<context>
+ <name>QtC::CmdBridge</name>
+ <message>
+ <source>Command failed with exit code %1: %2</source>
+ <translation>Commande échouée avec le code de sortie %1&#xa0;: %2</translation>
+ </message>
+ <message>
+ <source>Error starting cmdbridge: %1</source>
+ <translation>Erreur lors du démarrage de cmdbridge&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Remote root path is empty</source>
+ <translation>L'emplacement de la racine distante est vide</translation>
+ </message>
+ <message>
+ <source>Remote root path is not absolute</source>
+ <translation>L'emplacement de la racine distante n&apos;est pas absolu</translation>
+ </message>
+ <message>
+ <source>Could not find dd on remote host: %1</source>
+ <translation>Impossible de trouver dd sur la machine hôte distante&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Error reading file: %1</source>
+ <translation>Erreur lors de la lecture du fichier&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Error writing file: %1</source>
+ <translation>Erreur lors de l&apos;écriture du fichier&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>File does not exist</source>
+ <translation>Le fichier n&apos;existe pas</translation>
+ </message>
+ <message>
+ <source>Error removing file: %1</source>
+ <translation>Erreur lors de la suppression du fichier&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Error copying file: %1</source>
+ <translation>Erreur lors de la copie du fichier&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Error renaming file: %1</source>
+ <translation>Erreur lors du renommage du fichier&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Error killing process: %1</source>
+ <translation>Erreur lors de l&apos;arrêt du processus&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Error creating temporary file: %1</source>
+ <translation>Erreur lors de la création du fichier temporaire&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Failed starting bridge process</source>
+ <translation>Échec lors du démarrage du processus de liaison</translation>
+ </message>
+ <message>
+ <source>Failed starting bridge process: %1</source>
+ <translation>Échec lors du démarrage du processus de liaison&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Bridge process not running</source>
+ <translation>Le processus de liaison ne s&apos;exécute pas</translation>
+ </message>
+ <message>
+ <source>FollowSymlinks is not supported</source>
+ <translation>L&apos;option FollowSymlinks n&apos;est pas prise en charge</translation>
+ </message>
+ <message>
+ <source>Kickoff signal is not supported</source>
+ <translation>Le signal de démarrage (Kickoff) n&apos;est pas pris en charge</translation>
+ </message>
+ <message>
+ <source>CloseWriteChannel signal is not supported</source>
+ <translation>Le signal CloseWriteChannel n&apos;est pas pris en charge</translation>
+ </message>
+ <message>
+ <source>No command bridge found for architecture %1-%2</source>
+ <translation>Aucune commande de liaison n&apos;a été trouvée pour l&apos;architecture %1 - %2</translation>
+ </message>
+</context>
+<context>
<name>QtC::Coco</name>
<message>
<source>Select a Squish Coco CoverageBrowser Executable</source>
@@ -18545,6 +18771,18 @@ Oui :)</translatorcomment>
<translation>Fournit par %1</translation>
</message>
<message>
+ <source>Change backend URL.</source>
+ <translation>Modifier l&apos;URL du back-end.</translation>
+ </message>
+ <message>
+ <source>Set Compiler Explorer URL</source>
+ <translation>Configurer l&apos;URL de Compiler Explorer</translation>
+ </message>
+ <message>
+ <source>URL:</source>
+ <translation>URL&#xa0;:</translation>
+ </message>
+ <message>
<source>Compiler Explorer Editor</source>
<translation>Éditeur Compiler Explorer</translation>
</message>
@@ -18669,26 +18907,6 @@ Le code a été copié dans votre presse-papiers.</translation>
<translation>Ne plus demander. Cela désactivera Copilot pour le moment.</translation>
</message>
<message>
- <source>Select Previous Copilot Suggestion</source>
- <translation>Sélectionner la suggestion Copilot précédente</translation>
- </message>
- <message>
- <source>Select Next Copilot Suggestion</source>
- <translation>Sélectionner la suggestion Copilot suivante</translation>
- </message>
- <message>
- <source>Apply (%1)</source>
- <translation>Appliquer (%1)</translation>
- </message>
- <message>
- <source>Apply Word (%1)</source>
- <translation>Appliquer le mot (%1)</translation>
- </message>
- <message>
- <source>%1 of %2</source>
- <translation>%1 de %2</translation>
- </message>
- <message>
<source>Request Copilot Suggestion</source>
<translation>Requête de suggestion Copilot</translation>
</message>
@@ -19027,6 +19245,14 @@ Sinon, vous devez spécifier le chemin vers le fichier %2 du greffon Copilot Neo
<translation>Épingler</translation>
</message>
<message>
+ <source>Open Previous Document</source>
+ <translation>Ouvrir le document précédent</translation>
+ </message>
+ <message>
+ <source>Open Next Document</source>
+ <translation>Ouvrir le document suivant</translation>
+ </message>
+ <message>
<source>Reopen Last Closed Document</source>
<translation>Ré-ouvrir le dernier document fermé</translation>
</message>
@@ -19484,6 +19710,10 @@ provided they were unmodified before the refactoring.</source>
à condition qu’ils n’aient pas été modifiés avant la refactorisation.</translation>
</message>
<message>
+ <source>Crash reports are saved in &quot;%1&quot;.</source>
+ <translation>Les rapports de plantage sont enregistrés dans «&#xa0;%1&#xa0;».</translation>
+ </message>
+ <message>
<source>Crash Reporting</source>
<translation>Rapport de plantage</translation>
</message>
@@ -19743,8 +19973,12 @@ provided they were unmodified before the refactoring.</source>
<translation>Cycler sur les styles du sélecteur de mode</translation>
</message>
<message>
- <source>Mode Selector Style</source>
- <translation>Style de sélecteur de mode</translation>
+ <source>Hide</source>
+ <translation>Cacher</translation>
+ </message>
+ <message>
+ <source>Modes</source>
+ <translation>Modes</translation>
</message>
<message>
<source>Icons and Text</source>
@@ -19759,6 +19993,11 @@ provided they were unmodified before the refactoring.</source>
<translation>Caché</translation>
</message>
<message>
+ <source>Show %1</source>
+ <extracomment>%1 = name of a mode</extracomment>
+ <translation>Afficher %1</translation>
+ </message>
+ <message>
<source>Version:</source>
<translation>Version :</translation>
</message>
@@ -19795,6 +20034,18 @@ provided they were unmodified before the refactoring.</source>
<translation>Ctrl+0</translation>
</message>
<message>
+ <source>Could not find %1 executable in %2</source>
+ <translation>Impossible de trouver l&apos;exécutable %1 dans %2</translation>
+ </message>
+ <message>
+ <source>The Qt logo, axivion stopping software erosion logo, Qt Group logo, as well as Qt®, Axivion®, avixion stopping software erosion®, Boot to Qt®, Built with Qt®, Coco®, froglogic®, Qt Cloud Services®, Qt Developer Days®, Qt Embedded®, Qt Enterprise®, Qt Group®, Qt Mobile®, Qt Quick®, Qt Quick Compiler®, Squish® are registered trademarks of The Qt Company Ltd. or its subsidiaries.</source>
+ <translation>Le logo Qt, le logo axivion stopper stopping software erosion, le logo du groupe Qt, ainsi que Qt®, Axivion®, avixion stopping software erosion®, Boot to Qt®, Built with Qt®, Coco®, froglogic®, Qt Cloud Services®, Qt Developer Days®, Qt Embedded®, Qt Enterprise®, Qt Group®, Qt Mobile®, Qt Quick®, Qt Quick Compiler®, Squish® sont des marques déposées de The&#xa0;Qt&#xa0;Company&#xa0;Ltd. ou de ses filiales.</translation>
+ </message>
+ <message>
+ <source>%1 is free software, and you are welcome to redistribute it under &lt;a href=&quot;%2&quot;&gt;certain conditions&lt;/a&gt;. For some components, different conditions might apply though.</source>
+ <translation>%1 est un logiciel libre et vous êtes invités à le redistribuer sous &lt;a href=&quot;%2&quot;&gt;certaines conditions&lt;/a&gt;. Toutefois, d&apos;autres conditions peuvent s&apos;appliquer pour certains composants.</translation>
+ </message>
+ <message>
<source>Meta+0</source>
<translation>Meta+0</translation>
</message>
@@ -20063,6 +20314,16 @@ provided they were unmodified before the refactoring.</source>
<translation>Afficher les lignes non concordantes</translation>
</message>
<message>
+ <source>Show {} &amp;preceding lines</source>
+ <extracomment>The placeholder &quot;{}&quot; is replaced by a spin box for selecting a number.</extracomment>
+ <translation>Afficher les {} lignes &amp;précédentes</translation>
+ </message>
+ <message>
+ <source>Show {} &amp;subsequent lines</source>
+ <extracomment>The placeholder &quot;{}&quot; is replaced by a spin box for selecting a number.</extracomment>
+ <translation>Afficher les {} lignes &amp;suivantes</translation>
+ </message>
+ <message>
<source>Filter output...</source>
<translation>Filtrer la sortie…</translation>
</message>
@@ -20276,6 +20537,10 @@ provided they were unmodified before the refactoring.</source>
<translation>&amp;Mots entiers uniquement</translation>
</message>
<message>
+ <source>Ignore binary files</source>
+ <translation>Ignorer les fichiers binaires</translation>
+ </message>
+ <message>
<source>Use re&amp;gular expressions</source>
<translation>Utiliser des e&amp;xpressions régulières</translation>
</message>
@@ -21303,19 +21568,24 @@ au gestionnaire de versions (%2)&#xa0;?</translation>
<source>Adding to Version Control Failed</source>
<translation>L’ajout au gestionnaire de versions a échoué</translation>
</message>
- <message>
- <source>Could not add the file
-%1
-to version control (%2)
-</source>
- <translation>Impossible d’ajouter le fichier
-%1
-au gestionnaire de versions (%2)
-</translation>
+ <message numerus="yes">
+ <source>Could not add the following files to version control (%1)
+%2
+... and %n more.</source>
+ <extracomment>%1 = name of VCS system, %2 = lines with file paths</extracomment>
+ <translation>
+ <numerusform>Impossible d&apos;ajouter les fichiers suivants au contrôle de version (%1)
+%2
+… et %n autre.</numerusform>
+ <numerusform>Impossible d&apos;ajouter les fichiers suivants au contrôle de version (%1)
+%2
+… et %n autres.</numerusform>
+ </translation>
</message>
<message>
<source>Could not add the following files to version control (%1)
%2</source>
+ <extracomment>%1 = name of VCS system, %2 = lines with file paths</extracomment>
<translation>Impossible d’ajouter les fichiers
%1
au gestionnaire de versions (%2)</translation>
@@ -21423,6 +21693,10 @@ Voulez-vous les écraser&#xa0;?</translation>
<translation>Échec du renommage de la garde d’inclusion dans le fichier «&#xa0;%1&#xa0;».</translation>
</message>
<message>
+ <source>Failed to set permissions.</source>
+ <translation>Impossible de définir les permissions.</translation>
+ </message>
+ <message>
<source>Unable to create the directory %1.</source>
<translation>Impossible de créer le répertoire %1.</translation>
</message>
@@ -21640,6 +21914,10 @@ Voulez-vous les écraser&#xa0;?</translation>
<translation>Impossible de recharger %1</translation>
</message>
<message>
+ <source>Not implemented</source>
+ <translation>Pas implémenté</translation>
+ </message>
+ <message>
<source>File was restored from auto-saved copy. Select Save to confirm or Revert to Saved to discard changes.</source>
<translation>Le fichier a été restauré depuis une copie d’enregistrement automatique. Sélectionnez Enregistrer pour confirmer ou Retour à l’enregistrement pour effacer les changements.</translation>
</message>
@@ -21682,6 +21960,26 @@ Voulez-vous l’arrêter&#xa0;?</translation>
<translation>Ouvrir avec VCS (%1)</translation>
</message>
<message>
+ <source>Version control state: added.</source>
+ <translation>État du gestionnaire de versions&#xa0;: ajouté.</translation>
+ </message>
+ <message>
+ <source>Version control state: modified.</source>
+ <translation>État du gestionnaire de versions&#xa0;: modifié.</translation>
+ </message>
+ <message>
+ <source>Version control state: deleted.</source>
+ <translation>État du gestionnaire de versions&#xa0;: supprimé.</translation>
+ </message>
+ <message>
+ <source>Version control state: renamed.</source>
+ <translation>État du gestionnaire de versions&#xa0;: renommé.</translation>
+ </message>
+ <message>
+ <source>Version control state: untracked.</source>
+ <translation>État du gestionnaire de versions&#xa0;: non suivi.</translation>
+ </message>
+ <message>
<source>Files Without Write Permissions</source>
<translation>Fichiers sans permissions d’écriture</translation>
</message>
@@ -21845,6 +22143,26 @@ Souhaitez-vous les importer maintenant&#xa0;?</translation>
<translation>Ne plus demander.</translation>
</message>
<message>
+ <source>Terms and Conditions</source>
+ <translation>Termes et conditions</translation>
+ </message>
+ <message>
+ <source>Accept</source>
+ <translation>Accepter</translation>
+ </message>
+ <message>
+ <source>Decline</source>
+ <translation>Refuser</translation>
+ </message>
+ <message>
+ <source>The plugin %1 requires you to accept the following terms and conditions:</source>
+ <translation>Le greffon %1 nécessite que vous acceptiez les termes et conditions&#xa0;:</translation>
+ </message>
+ <message>
+ <source>Do you wish to accept?</source>
+ <translation>Souhaitez-vous accepter&#xa0;?</translation>
+ </message>
+ <message>
<source>No themes found in installation.</source>
<translation>Aucun thème n’a été trouvé dans l’installation.</translation>
</message>
@@ -21985,8 +22303,8 @@ Vous rencontrerez probablement d’autres problèmes en utilisant cette instance
<translation>Édition &gt; Préférences &gt; Environnement &gt; Système</translation>
</message>
<message>
- <source>%1 uses Google Crashpad for collecting crashes and sending them to our backend for processing. Crashpad may capture arbitrary contents from crashed process’ memory, including user sensitive information, URLs, and whatever other content users have trusted %1 with. The collected crash reports are however only used for the sole purpose of fixing bugs.</source>
- <translation>%1 utilise Google Crashpad pour recevoir les plantages et les envoyer à notre backend pour traitement. Crashpad peut capturer des contenus arbitraires de la mémoire du processus accidenté, y compris des informations sensibles de l’utilisateur, des URL et tout autre contenu que les utilisateurs ont confié à %1. Les rapports de plantage collectés ne sont toutefois utilisés que dans le seul but de corriger les bogues.</translation>
+ <source>%1 uses Google Crashpad for collecting crashes and sending them to Sentry for processing. Crashpad may capture arbitrary contents from crashed process’ memory, including user sensitive information, URLs, and whatever other content users have trusted %1 with. The collected crash reports are however only used for the sole purpose of fixing bugs.</source>
+ <translation>%1 utilise Google Crashpad pour collecter des informations sur les plantages et les envoyer à Sentry pour le traitement. Crashpad peut collecter du contenu arbitraire depuis la mémoire du processus planté, incluant des informations utilisateurs sensibles, URLs et n&apos;importe quel autre contenu que les utilisateurs ont fourni à %1. Toutefois, les rapports de plantage collectés ne sont utilisés que dans l&apos;unique but de corriger des bogues.</translation>
</message>
<message>
<source>More information:</source>
@@ -22194,6 +22512,14 @@ Double-cliquez pour modifier l’élément.</translation>
<source>Save Contents...</source>
<translation>Enregistrer le contenu…</translation>
</message>
+ <message>
+ <source>Copy Contents to Scratch Buffer</source>
+ <translation>Copier les contenus vers le brouillon</translation>
+ </message>
+ <message>
+ <source>Failed to open editor for &quot;%1&quot;.</source>
+ <translation>Impossible d&apos;ouvrir l&apos;éditeur pour «&#xa0;%1&#xa0;».</translation>
+ </message>
<message numerus="yes">
<source>Elided %n characters due to Application Output settings</source>
<translation>
@@ -22268,6 +22594,18 @@ Double-cliquez pour modifier l’élément.</translation>
<translation>Le fichier n’existe pas.</translation>
</message>
<message>
+ <source>No plugins found.</source>
+ <translation>Aucun greffon n&apos;a été trouvé.</translation>
+ </message>
+ <message>
+ <source>More than one plugin found.</source>
+ <translation>Plus d&apos;un greffon trouvé.</translation>
+ </message>
+ <message>
+ <source>Plugin failed to resolve dependencies:</source>
+ <translation>La résolution des dépendances pour le greffon a échoué&#xa0;:</translation>
+ </message>
+ <message>
<source>Check Archive</source>
<translation>Vérifier l’archive</translation>
</message>
@@ -22276,6 +22614,22 @@ Double-cliquez pour modifier l’élément.</translation>
<translation>Vérification de l’archive…</translation>
</message>
<message>
+ <source>Load plugin immediately</source>
+ <translation>Charger le greffon immédiatement</translation>
+ </message>
+ <message>
+ <source>%1 will be installed into %2.</source>
+ <translation>%1 sera installé dans %2.</translation>
+ </message>
+ <message>
+ <source>Accept Terms and Conditions</source>
+ <translation>Accepter les termes et conditions</translation>
+ </message>
+ <message>
+ <source>I accept the terms and conditions.</source>
+ <translation>J&apos;accepte les termes et conditions.</translation>
+ </message>
+ <message>
<source>Canceled.</source>
<translation>Annulé.</translation>
</message>
@@ -22288,14 +22642,6 @@ Double-cliquez pour modifier l’élément.</translation>
<translation>L’archive est OK.</translation>
</message>
<message>
- <source>Plugin requires an incompatible version of %1 (%2).</source>
- <translation>Le greffon nécessite une version incompatible de %1 (%2).</translation>
- </message>
- <message>
- <source>Did not find %1 plugin.</source>
- <translation>Le greffon %1 est introuvable.</translation>
- </message>
- <message>
<source>Install Location</source>
<translation>Emplacement de l’installation</translation>
</message>
@@ -22324,10 +22670,6 @@ Double-cliquez pour modifier l’élément.</translation>
<translation>Résumé</translation>
</message>
<message>
- <source>&quot;%1&quot; will be installed into &quot;%2&quot;.</source>
- <translation>«&#xa0;%1&#xa0;» sera installé dans «&#xa0;%2&#xa0;».</translation>
- </message>
- <message>
<source>Overwrite File</source>
<translation>Écraser le fichier</translation>
</message>
@@ -22384,14 +22726,6 @@ Double-cliquez pour modifier l’élément.</translation>
<translation>&lt;br/&gt;Construit sur %1 %2&lt;br/&gt;</translation>
</message>
<message>
- <source>&lt;h3&gt;%1&lt;/h3&gt;%2&lt;br/&gt;%3%4%5&lt;br/&gt;Copyright 2008-%6 %7. All rights reserved.&lt;br/&gt;&lt;br/&gt;The program is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.&lt;br/&gt;</source>
- <translation>&lt;h3&gt;%1&lt;/h3&gt;%2&lt;br/&gt;%3%4%5&lt;br/&gt;Copyright 2008-%6 %7. Tous droits réservés.&lt;br/&gt;&lt;br/&gt;Le programme est fourni tel quel, sans garantie d’aucune sorte, y compris la garantie de conception, de qualité marchande et d’adéquation à un usage particulier.&lt;br/&gt;</translation>
- </message>
- <message>
- <source>The Qt logo as well as Qt®, Qt Quick®, Built with Qt®, Boot to Qt®, Qt Quick Compiler®, Qt Enterprise®, Qt Mobile® and Qt Embedded® are registered trademarks of The Qt Company Ltd.</source>
- <translation>Le logo Qt ainsi que Qt®, Qt Quick®, Built with Qt®, Boot to Qt®, Qt Quick Compiler®, Qt Enterprise®, Qt Mobile® et Qt Embedded® sont des marques déposées de The Qt Company Ltd.</translation>
- </message>
- <message>
<source>Haskell Editor</source>
<translation>Éditeur Haskell</translation>
</message>
@@ -22423,6 +22757,14 @@ Double-cliquez pour modifier l’élément.</translation>
<source>Markdown Editor</source>
<translation>Éditeur de Markdown</translation>
</message>
+ <message>
+ <source>Secret storage is not available! Your values will be stored as plaintext in the settings!</source>
+ <translation>Le coffre-fort n&apos;est pas disponible&#xa0;! Vos valeurs seront stockées en clair dans les paramètres&#xa0;!</translation>
+ </message>
+ <message>
+ <source>You can install libsecret or KWallet to enable secret storage.</source>
+ <translation>Vous pouvez installer libsecret ou KWallet pour activer le coffre-fort.</translation>
+ </message>
</context>
<context>
<name>QtC::CppEditor</name>
@@ -24327,6 +24669,14 @@ Ces préfixes sont utilisés en complément au répertoire actuel pour basculer
<source>Re-order Member Function Definitions According to Declaration Order</source>
<translation>Ré-ordonner les définitions de fonction membres suivant l&apos;ordre de déclaration</translation>
</message>
+ <message>
+ <source>Invalid location for %1.</source>
+ <translation>Emplacement invalide pour %1.</translation>
+ </message>
+ <message>
+ <source>Could not create &quot;%1&quot;: %2</source>
+ <translation>Impossible de créer «&#xa0;%1&#xa0;»&#xa0;: %2</translation>
+ </message>
</context>
<context>
<name>QtC::Cppcheck</name>
@@ -24627,10 +24977,30 @@ Souhaitez-vous tout de même les afficher&#xa0;?</translation>
<translation>Ajoute toujours un point d’arrêt sur la fonction &lt;i&gt;%1()&lt;/i&gt;.</translation>
</message>
<message>
+ <source>Show warnings for unsupported breakpoints</source>
+ <translation>Afficher un avertissement pour les points d&apos;arrêt non pris en charge</translation>
+ </message>
+ <message>
+ <source>Shows a warning on debugger start-up when breakpoints are requested which are not supported by the selected debugger engine.</source>
+ <translation>Affiche un avertissement au démarrage du débogueur lorsque des points d&apos;arrêt ne sont pas pris en charge par le débogueur sélectionné.</translation>
+ </message>
+ <message>
<source>Behavior</source>
<translation>Comportement</translation>
</message>
<message>
+ <source>User Interface</source>
+ <translation>Interface utilisateur</translation>
+ </message>
+ <message>
+ <source>When Debugging Stops</source>
+ <translation>Lorsque le débogage s&apos;arrête</translation>
+ </message>
+ <message>
+ <source>Allow inferior calls in debugging helper</source>
+ <translation>Permettre les appels à l&apos;inférieur dans l&apos;assistant au débogage</translation>
+ </message>
+ <message>
<source>Default array size:</source>
<translation>Taille de tableau par défaut&#xa0;:</translation>
</message>
@@ -26254,10 +26624,6 @@ par défaut de l’utilisateur au démarrage du débogueur.</translation>
<translation>%1 (précédente)</translation>
</message>
<message>
- <source>%1 (Restored)</source>
- <translation>%1 (restaurée)</translation>
- </message>
- <message>
<source>Expression too complex</source>
<translation>Expression trop complexe</translation>
</message>
@@ -27153,6 +27519,10 @@ Il peut vous être demandé de partager le contenu de ce journal lorsque vous si
<translation>Attacher à un serveur de débogage en cours d’exécution…</translation>
</message>
<message>
+ <source>Load Last Core File</source>
+ <translation>Charger le dernier fichier core</translation>
+ </message>
+ <message>
<source>Start and Break on Main</source>
<translation>Démarrer et s&apos;arrêter sur la fonction Main</translation>
</message>
@@ -27282,6 +27652,14 @@ Il peut vous être demandé de partager le contenu de ce journal lorsque vous si
<translation>Commencer le débogage DAP</translation>
</message>
<message>
+ <source>coredumpctl did not find any cores created by systemd-coredump.</source>
+ <translation>coredumpctl n&apos;a pas trouvé de fichier core créé par systemd-coredump.</translation>
+ </message>
+ <message>
+ <source>Last Core file &quot;%1&quot;</source>
+ <translation>Dernier fichier core «&#xa0;%1&#xa0;»</translation>
+ </message>
+ <message>
<source>in Debug mode</source>
<translation>en mode Debug</translation>
</message>
@@ -27928,6 +28306,14 @@ Vous pouvez choisir un autre canal de communication ici, comme une ligne série
<translation>&amp;Récent :</translation>
</message>
<message>
+ <source>Cannot debug</source>
+ <translation>Impossible de déboguer</translation>
+ </message>
+ <message>
+ <source>Cannot debug application: Kit has no device</source>
+ <translation>Impossible de déboguer l&apos;application&#xa0;: le kit n&apos;a pas de périphérique</translation>
+ </message>
+ <message>
<source>Attach to %1</source>
<translation>Attacher à %1</translation>
</message>
@@ -28916,6 +29302,14 @@ L’accès au module ou la mise en place de points d’arrêt par fichier et par
<translation>Impossible de déterminer le type de débogueur</translation>
</message>
<message>
+ <source>Invalid debugger command</source>
+ <translation>Commande de débogueur invalide</translation>
+ </message>
+ <message>
+ <source>Invalid working directory</source>
+ <translation>Répertoire de travail invalide</translation>
+ </message>
+ <message>
<source>Type of Debugger Backend</source>
<translation>Type du backend du débogueur</translation>
</message>
@@ -29736,6 +30130,14 @@ La recompilation du projet peut aider.</translation>
<translation>Docker</translation>
</message>
<message>
+ <source>Failed starting Docker container. Exit code: %1, output: %2</source>
+ <translation>Échec lors du démarrage du container Docker. Code de sortie&#xa0;: %1, sortie&#xa0;: %2</translation>
+ </message>
+ <message>
+ <source>Failed to start container: %1</source>
+ <translation>Échec du démarrage du container&#xa0;: %1</translation>
+ </message>
+ <message>
<source>Docker Image &quot;%1&quot; (%2)</source>
<translation>Image Docker «&#xa0;%1&#xa0;» (%2)</translation>
</message>
@@ -29796,15 +30198,6 @@ La recompilation du projet peut aider.</translation>
<translation>Échec lors de la création du container Docker. Aucun identifiant de container reçu.</translation>
</message>
<message>
- <source>Docker daemon appears to be not running. Verify daemon is up and running and reset the Docker daemon in Docker device preferences or restart %1.</source>
- <extracomment>%1 is the application name (Qt Creator)</extracomment>
- <translation>Le démon Docker ne semble pas fonctionner. Vérifiez que le démon est présent et en cours d&apos;exécution et réinitialisez le démon docker dans les paramètres du périphérique docker ou redémarrez %1.</translation>
- </message>
- <message>
- <source>Failed to create container shell (Out of memory).</source>
- <translation>Échec lors de la création du shell du container (mémoire insuffisante).</translation>
- </message>
- <message>
<source>Device is shut down</source>
<translation>Le périphérique a été fermé</translation>
</message>
@@ -29849,6 +30242,14 @@ La recompilation du projet peut aider.</translation>
<translation>Périphérique Docker</translation>
</message>
<message>
+ <source>Failed to inspect image: %1</source>
+ <translation>Échec lors de l&apos;inspection de l&apos;image&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Could not parse image inspect output: %1</source>
+ <translation>Impossible d&apos;analyser la sortie d&apos;inspection de l&apos;image&#xa0;: %1</translation>
+ </message>
+ <message>
<source>localSource: No mount point found for %1</source>
<translation>localSource&#xa0;: aucun point de montage trouvé pour %1</translation>
</message>
@@ -30075,23 +30476,12 @@ La recompilation du projet peut aider.</translation>
<translation>Extensions</translation>
</message>
<message>
- <source>More information</source>
- <translation>Plus d&apos;informations</translation>
- </message>
- <message>
<source>Extension details</source>
<translation>Détails de l&apos;extension</translation>
</message>
- <message numerus="yes">
- <source>Pack contains %n plugins.</source>
- <translation>
- <numerusform>Le paquet contient %n greffon.</numerusform>
- <numerusform>Le paquet contient %n greffons.</numerusform>
- </translation>
- </message>
<message>
- <source>Load on start</source>
- <translation>Charger au démarrage</translation>
+ <source>Active</source>
+ <translation>Active</translation>
</message>
<message>
<source>Restart Now</source>
@@ -30110,6 +30500,18 @@ La recompilation du projet peut aider.</translation>
<translation>Non chargé</translation>
</message>
<message>
+ <source>No details to show</source>
+ <translation>Aucun détail à afficher</translation>
+ </message>
+ <message>
+ <source>Select an extension to see more information about it.</source>
+ <translation>Sélectionnez une extension pour obtenir plus d&apos;informations sur celle-ci.</translation>
+ </message>
+ <message>
+ <source>Last Update</source>
+ <translation>Dernière mise à jour</translation>
+ </message>
+ <message>
<source>Tags</source>
<translation>Étiquettes</translation>
</message>
@@ -30150,6 +30552,34 @@ La recompilation du projet peut aider.</translation>
<translation>Code&#xa0;: %1.</translation>
</message>
<message>
+ <source>Inactive</source>
+ <translation>Inactive</translation>
+ </message>
+ <message>
+ <source>Last updated</source>
+ <translation>Date de mise à jour</translation>
+ </message>
+ <message>
+ <source>Name</source>
+ <translation>Nom</translation>
+ </message>
+ <message>
+ <source>All</source>
+ <translation>Toutes</translation>
+ </message>
+ <message>
+ <source>Extension packs</source>
+ <translation>Packs d&apos;extensions</translation>
+ </message>
+ <message>
+ <source>Individual extensions</source>
+ <translation>Extensions invidivuelles</translation>
+ </message>
+ <message>
+ <source>No extension found!</source>
+ <translation>Aucune extension n&apos;a été trouvée&#xa0;!</translation>
+ </message>
+ <message>
<source>Manage Extensions</source>
<translation>Gérer les extensions</translation>
</message>
@@ -30158,6 +30588,14 @@ La recompilation du projet peut aider.</translation>
<translation>Rechercher</translation>
</message>
<message>
+ <source>Filter by: %1</source>
+ <translation>Filtrer par&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Sort by: %1</source>
+ <translation>Trier par&#xa0;: %1</translation>
+ </message>
+ <message>
<source>Install...</source>
<translation>Installer…</translation>
</message>
@@ -30166,8 +30604,44 @@ La recompilation du projet peut aider.</translation>
<translation>Utiliser un dépôt externe</translation>
</message>
<message>
- <source>Repository: %1</source>
- <translation>Dépôt&#xa0;: %1</translation>
+ <source>Server URL:</source>
+ <translation>URL du serveur&#xa0;:</translation>
+ </message>
+ <message>
+ <source>Note</source>
+ <translation>Note</translation>
+ </message>
+ <message>
+ <source>%1 does not check extensions from external vendors for security flaws or malicious intent, so be careful when installing them, as it might leave your computer vulnerable to attacks such as hacking, malware, and phishing.</source>
+ <translation>%1 ne vérifie pas la présence de faille de sécurité ou de comportement malicieux dans les extensions provenant de distributeurs externes. Veuillez faire preuve de prudence lors de leur installation, celles-ci pourraient rendre votre ordinateur vulnérable à des piratages informatique ou permettre le hameçonnage.</translation>
+ </message>
+ <message>
+ <source>Use External Repository</source>
+ <translation>Utiliser un dépôt externe</translation>
+ </message>
+ <message>
+ <source>Install Extension...</source>
+ <translation>Installer une extension…</translation>
+ </message>
+ <message>
+ <source>Plugin changes will take effect after restart.</source>
+ <translation>Les modifications apportées au greffon prendront effet après le redémarrage.</translation>
+ </message>
+ <message>
+ <source>Browser</source>
+ <translation>Navigateur</translation>
+ </message>
+ <message>
+ <source>Documentation</source>
+ <translation>Documentation</translation>
+ </message>
+ <message>
+ <source>More Information</source>
+ <translation>Plus d&apos;informations</translation>
+ </message>
+ <message>
+ <source>New</source>
+ <translation>Nouveau</translation>
</message>
</context>
<context>
@@ -30181,8 +30655,16 @@ La recompilation du projet peut aider.</translation>
<translation>Version :</translation>
</message>
<message>
+ <source>Vendor Id:</source>
+ <translation>Identifiant du distributeur&#xa0;:</translation>
+ </message>
+ <message>
<source>Vendor:</source>
- <translation>Vendeur :</translation>
+ <translation>Distributeur&#xa0;:</translation>
+ </message>
+ <message>
+ <source>Documentation:</source>
+ <translation>Documentation&#xa0;:</translation>
</message>
<message>
<source>Location:</source>
@@ -30222,6 +30704,10 @@ La recompilation du projet peut aider.</translation>
<translation>Groupe :</translation>
</message>
<message>
+ <source>Id:</source>
+ <translation>Identifiant&#xa0;:</translation>
+ </message>
+ <message>
<source>Compatibility version:</source>
<translatorcomment>cf libs/extensionsystem/plugindetailsview.ui et PluginSpecPrivate::provides() : version minimum compatible</translatorcomment>
<translation>Version compatible :</translation>
@@ -30275,14 +30761,12 @@ La recompilation du projet peut aider.</translation>
<translation>Message d’erreur :</translation>
</message>
<message>
- <source>%1 (deprecated)</source>
- <extracomment>%1 is a plugin name</extracomment>
- <translation>%1 (déprécié)</translation>
+ <source>deprecated</source>
+ <translation>déprécié</translation>
</message>
<message>
- <source>%1 (experimental)</source>
- <extracomment>%1 is a plugin name</extracomment>
- <translation>%1 (expérimental)</translation>
+ <source>experimental</source>
+ <translation>expérimental</translation>
</message>
<message>
<source>Path: %1
@@ -30451,6 +30935,14 @@ Raison : %3</translation>
<translation>Désactiver le greffon</translation>
</message>
<message>
+ <source>No callback set to accept terms and conditions</source>
+ <translation>Aucun retour défini pour accepter les termes et conditions</translation>
+ </message>
+ <message>
+ <source>You did not accept the terms and conditions</source>
+ <translation>Vous n&apos;avez pas accepté les termes et conditions</translation>
+ </message>
+ <message>
<source>Cannot load plugin because dependency failed to load: %1(%2)
Reason: %3</source>
<translation>Impossible de charger le greffon car une des dépendances n’a pas pu être chargé : %1(%2)
@@ -30541,6 +31033,14 @@ Raison : %3</translation>
<translation>Les métadonnées du greffon n’ont pas été trouvées</translation>
</message>
<message>
+ <source>Plugin id &quot;%1&quot; must be lowercase</source>
+ <translation>L&apos;identifiant du greffon «&#xa0;%1&#xa0;» doit être en minuscules</translation>
+ </message>
+ <message>
+ <source>Terms and conditions: %1</source>
+ <translation>Termes et conditions&#xa0;: %1</translation>
+ </message>
+ <message>
<source>Invalid platform specification &quot;%1&quot;: %2</source>
<translation>La spécification de la plate-forme «&#xa0;%1&#xa0;» n’est pas valide : %2</translation>
</message>
@@ -31837,7 +32337,7 @@ Raison : %3</translation>
</message>
<message>
<source>Cannot find parent revisions of &quot;%1&quot; in &quot;%2&quot;: %3</source>
- <extracomment>Failed to find parent revisions of a SHA1 for &quot;annotate previous&quot;</extracomment>
+ <extracomment>Failed to find parent revisions of a hash for &quot;annotate previous&quot;</extracomment>
<translation>Impossible de trouver la révision parente de «&#xa0;%1&#xa0;» dans «&#xa0;%2&#xa0;» : %3</translation>
</message>
<message>
@@ -32077,6 +32577,15 @@ Souhaitez-vous créer la branche «&#xa0;%1&#xa0;» sur le serveur distant et la
<translation>Le chunk a été retiré avec succès</translation>
</message>
<message>
+ <source>All</source>
+ <translatorcomment>Semble être pour les branches</translatorcomment>
+ <translation>Toutes</translation>
+ </message>
+ <message>
+ <source>Show log for all local branches.</source>
+ <translation>Afficher le journal de toutes les branches locales.</translation>
+ </message>
+ <message>
<source>Git Diff Files</source>
<translation>Git Diff les fichiers</translation>
</message>
@@ -32376,10 +32885,6 @@ Valider maintenant&#xa0;?</translation>
<translation>Annuler les changements non committés pour «&#xa0;%1&#xa0;»</translation>
</message>
<message>
- <source>Current &amp;Project</source>
- <translation>&amp;Projet actuel</translation>
- </message>
- <message>
<source>Alt+G,Alt+K</source>
<translation>Alt+G,Alt+K</translation>
</message>
@@ -32537,44 +33042,14 @@ Valider maintenant&#xa0;?</translation>
<translation>Meta+G, Meta+U</translation>
</message>
<message>
- <source>Diff Current Project</source>
- <comment>Avoid translating &quot;Diff&quot;</comment>
- <translation>Réaliser un diff du projet actuel</translation>
- </message>
- <message>
- <source>Diff Project &quot;%1&quot;</source>
- <comment>Avoid translating &quot;Diff&quot;</comment>
- <translation>Réaliser un diff du projet «&#xa0;%1&#xa0;»</translation>
- </message>
- <message>
<source>Meta+G,Meta+Shift+D</source>
<translation>Meta+G, Meta+Maj+D</translation>
</message>
<message>
- <source>Log Project</source>
- <comment>Avoid translating &quot;Log&quot;</comment>
- <translation>Réaliser un log du projet</translation>
- </message>
- <message>
- <source>Log Project &quot;%1&quot;</source>
- <comment>Avoid translating &quot;Log&quot;</comment>
- <translation>Réaliser un log du projet «&#xa0;%1&#xa0;»</translation>
- </message>
- <message>
<source>Meta+G,Meta+K</source>
<translation>Meta+G, Meta+K</translation>
</message>
<message>
- <source>Clean Project...</source>
- <comment>Avoid translating &quot;Clean&quot;</comment>
- <translation>Nettoyer le projet…</translation>
- </message>
- <message>
- <source>Clean Project &quot;%1&quot;...</source>
- <comment>Avoid translating &quot;Clean&quot;</comment>
- <translation>Nettoyer le projet «&#xa0;%1&#xa0;»…</translation>
- </message>
- <message>
<source>&amp;Local Repository</source>
<translation>Dépôt &amp;local</translation>
</message>
@@ -32663,6 +33138,59 @@ Valider maintenant&#xa0;?</translation>
<translation>Meta+G, Meta+C</translation>
</message>
<message>
+ <source>Log Current Selection</source>
+ <comment>Avoid translating &quot;Log&quot;</comment>
+ <translatorcomment>Doit t-on suivre le conseil du développeur ? :D</translatorcomment>
+ <translation>Log de la sélection actuelle</translation>
+ </message>
+ <message>
+ <source>Log of &quot;%1&quot; Selection</source>
+ <comment>Avoid translating &quot;Log&quot;</comment>
+ <translation>Log de la sélection «&#xa0;%1&#xa0;»</translation>
+ </message>
+ <message>
+ <source>Meta+G,Meta+S</source>
+ <translation>Meta+G, Meta+S</translation>
+ </message>
+ <message>
+ <source>Alt+G,Alt+S</source>
+ <translation>Alt+G, Alt+S</translation>
+ </message>
+ <message>
+ <source>Current &amp;Project Directory</source>
+ <translation>Répertoire du &amp;projet actuel</translation>
+ </message>
+ <message>
+ <source>Diff Project Directory</source>
+ <comment>Avoid translating &quot;Diff&quot;</comment>
+ <translation>Diff du répertoire du projet</translation>
+ </message>
+ <message>
+ <source>Diff Directory of Project &quot;%1&quot;</source>
+ <comment>Avoid translating &quot;Diff&quot;</comment>
+ <translation>Diff du répertoire du projet «&#xa0;%1&#xa0;»</translation>
+ </message>
+ <message>
+ <source>Log Project Directory</source>
+ <comment>Avoid translating &quot;Log&quot;</comment>
+ <translation>Log du répertoire du projet</translation>
+ </message>
+ <message>
+ <source>Log Directory of Project &quot;%1&quot;</source>
+ <comment>Avoid translating &quot;Log&quot;</comment>
+ <translation>Log du répertoire du projet «&#xa0;%1&#xa0;»</translation>
+ </message>
+ <message>
+ <source>Clean Project Directory...</source>
+ <comment>Avoid translating &quot;Clean&quot;</comment>
+ <translation>Clean du répertoire de projet…</translation>
+ </message>
+ <message>
+ <source>Clean Directory of Project &quot;%1&quot;...</source>
+ <comment>Avoid translating &quot;Clean&quot;</comment>
+ <translation>Clean du répertoire de projet «&#xa0;%1&#xa0;»…</translation>
+ </message>
+ <message>
<source>&amp;Subversion</source>
<translation>&amp;Subversion</translation>
</message>
@@ -32862,6 +33390,14 @@ au lieu de son répertoire d’installation lorsqu’il est exécuté en dehors
<translation>Trouve le commit ayant introduit la ligne avant qu&apos;elle ait été déplacée.</translation>
</message>
<message>
+ <source>Show commit subject</source>
+ <translation>Afficher le sujet du commit</translation>
+ </message>
+ <message>
+ <source>Adds the commit subject directly to the annotation.</source>
+ <translation>Ajoute le sujet du commit directement à l&apos;annotation.</translation>
+ </message>
+ <message>
<source>The binary &quot;%1&quot; could not be located in the path &quot;%2&quot;</source>
<translation>Le binaire «&#xa0;%1&#xa0;» n’a pas pu être localisé dans le chemin «&#xa0;%2&#xa0;»</translation>
</message>
@@ -33197,12 +33733,13 @@ Vous pouvez choisir entre mettre les changements dans une remise («&#xa0;stash&
<translation>Modifications</translation>
</message>
<message>
- <source>&amp;Query:</source>
- <translation>&amp;Requête :</translation>
+ <source>Change #, hash, tr:id, owner:email or reviewer:email</source>
+ <translatorcomment>Je ne suis pas sûr pour celle-ci</translatorcomment>
+ <translation>Changer #, hash, tr:id, owner:email ou reviewer:email</translation>
</message>
<message>
- <source>Change #, SHA-1, tr:id, owner:email or reviewer:email</source>
- <translation>Changer #, SHA-1, tr:id,owner:email ou reviewer:email</translation>
+ <source>&amp;Query:</source>
+ <translation>&amp;Requête :</translation>
</message>
<message>
<source>Details</source>
@@ -33590,10 +34127,6 @@ Non coché - La modification n’est pas un brouillon.</translation>
<translation>… Inclusion des anciennes branches …</translation>
</message>
<message>
- <source>Sha1</source>
- <translation>SHA1</translation>
- </message>
- <message>
<source>Reset to:</source>
<translation>Réinitialiser à :</translation>
</message>
@@ -33614,6 +34147,11 @@ Non coché - La modification n’est pas un brouillon.</translation>
<translation>Hard</translation>
</message>
<message>
+ <source>Hash</source>
+ <translatorcomment>ou hashage (que j&apos;ai vu autre part dans la traduction de QtCreator)</translatorcomment>
+ <translation>Hachage</translation>
+ </message>
+ <message>
<source>Soft</source>
<translation>Soft</translation>
</message>
@@ -35168,10 +35706,6 @@ Souhaitez-vous les écraser&#xa0;?</translation>
<translation>Échec lors du déploiement.</translation>
</message>
<message>
- <source>The Info.plist might be incorrect.</source>
- <translation>Le fichier Info.plist est peut-être incorrecte.</translation>
- </message>
- <message>
<source>iOS Device</source>
<translation>Périphérique iOS</translation>
</message>
@@ -35523,10 +36057,6 @@ Date d&apos;expiration&#xa0;: %3</translation>
<translation>UDID vide invalide.</translation>
</message>
<message>
- <source>Failed to start simulator app.</source>
- <translation>Échec du démarrage du simulateur.</translation>
- </message>
- <message>
<source>Simulator device is not available. (%1)</source>
<translation>Le simulateur n&apos;est pas disponible. (%1)</translation>
</message>
@@ -35981,6 +36511,10 @@ Voir la documentation spécifique au serveur de langage pour la liste des param�
<translation>Réaliser un log du fichier</translation>
</message>
<message>
+ <source>No client selected</source>
+ <translation>Aucun client n&apos;est sélectionné</translation>
+ </message>
+ <message>
<source>Language Client Inspector</source>
<translation>Inspecteur du fournisseur de langages</translation>
</message>
@@ -35993,6 +36527,10 @@ Voir la documentation spécifique au serveur de langage pour la liste des param�
<translation>Serveur de langage&#xa0;:</translation>
</message>
<message>
+ <source>Send message</source>
+ <translation>Envoyer un message</translation>
+ </message>
+ <message>
<source>Log</source>
<translation>Journal</translation>
</message>
@@ -36176,9 +36714,50 @@ Voir la documentation spécifique au serveur de langage pour la liste des param�
<translation>La fonction d&apos;installation de l&apos;extension a renvoyé l&apos;erreur %1</translation>
</message>
<message>
+ <source>Lua</source>
+ <translation>Lua</translation>
+ </message>
+ <message>
+ <source>New Script...</source>
+ <translation>Nouveau script…</translation>
+ </message>
+ <message>
+ <source>Scripting</source>
+ <translatorcomment>Comment traduire?</translatorcomment>
+ <translation>Scripting</translation>
+ </message>
+ <message>
+ <source>Run Current Script</source>
+ <translation>Exécuter le script actuel</translation>
+ </message>
+ <message>
<source>Failed to load plugin %1: %2</source>
<translation>Échec de chargement du greffon %1&#xa0;: %2</translation>
</message>
+ <message>
+ <source>Run script &quot;%1&quot;</source>
+ <translation>Exécuter le script «&#xa0;%1&#xa0;»</translation>
+ </message>
+ <message>
+ <source>Run</source>
+ <translation>Exécuter</translation>
+ </message>
+ <message>
+ <source>Edit</source>
+ <translation>Modifier</translation>
+ </message>
+ <message>
+ <source>Failed to read script &quot;%1&quot;: %2</source>
+ <translation>Échec lors de la lecture du script «&#xa0;%1&#xa0;»&#xa0;: %2</translation>
+ </message>
+ <message>
+ <source>Evaluate simple Lua statements.&lt;br&gt;Literal &apos;}&apos; characters must be escaped as &quot;\}&quot;, &apos;\&apos; characters must be escaped as &quot;\\&quot;, &apos;#&apos; characters must be escaped as &quot;\#&quot;, and &quot;%{&quot; must be escaped as &quot;%\{&quot;.</source>
+ <translation>Évaluer des instructions Lua simples.&lt;br&gt;Les caractères littéraux «&#xa0;}&#xa0;» doivent être échappés sous la forme «&#xa0;\}&#xa0;», les caractères «&#xa0;\&#xa0;» doivent être échappés sous la forme «&#xa0;\\&#xa0;», les caractères «&#xa0;#&#xa0;» doivent être échappés sous la forme «&#xa0;\#&#xa0;» et les caractères «&#xa0;%{&#xa0;» doivent être échappés sous la forme «&#xa0;%\{&#xa0;».</translation>
+ </message>
+ <message>
+ <source>No Lua statement to evaluate.</source>
+ <translation>Aucune expression Lua à évaluer.</translation>
+ </message>
</context>
<context>
<name>QtC::Macros</name>
@@ -37708,10 +38287,6 @@ Utile si le répertoire de compilation est corrompu ou lors d’une recompilatio
<translation>Cible de construction courante</translation>
</message>
<message>
- <source>&amp;Compiler path:</source>
- <translation>&amp;Chemin du compilateur&#xa0;:</translation>
- </message>
- <message>
<source>&amp;Compiler version:</source>
<translation>Version du &amp;compilateur&#xa0;:</translation>
</message>
@@ -39157,10 +39732,19 @@ Title of a the cloned RunConfiguration window, text of the window</extracomment>
<translation>Affiche la sortie qui a généré le problème dans la sortie de compilation.</translation>
</message>
<message>
+ <source>Discarded excessive compile output.</source>
+ <translatorcomment>abandonné ? jeté ?</translatorcomment>
+ <translation>Surplus de la sortie de compilation abandonné.</translation>
+ </message>
+ <message>
<source>Open Compile Output when building</source>
<translation>Ouvrir la sortie de compilation lors de la compilation</translation>
</message>
<message>
+ <source>Discards compile output that continuously comes in faster than it can be handled.</source>
+ <translation>Abandonne la sortie de compilation arrivant plus rapidement que ce qui peut être géré.</translation>
+ </message>
+ <message>
<source>Compile Output</source>
<translation>Sortie de compilation</translation>
</message>
@@ -39320,6 +39904,7 @@ Title of a the cloned RunConfiguration window, text of the window</extracomment>
</message>
<message>
<source>Projects</source>
+ <extracomment>title in expanded session items in welcome mode</extracomment>
<translation>Projets</translation>
</message>
<message>
@@ -39617,6 +40202,10 @@ Title of a the cloned RunConfiguration window, text of the window</extracomment>
<translation>Ouvrir l&apos;espace de travail…</translation>
</message>
<message>
+ <source>VCS Log Directory</source>
+ <translation>Répertoire des logs VCS</translation>
+ </message>
+ <message>
<source>Add New...</source>
<translation>Ajouter un nouveau…</translation>
</message>
@@ -39805,6 +40394,14 @@ Souhaitez-vous les ignorer&#xa0;?</translation>
<translation>Dupliquer le fichier…</translation>
</message>
<message>
+ <source>Create Header File</source>
+ <translation>Créer un fichier d&apos;en-tête</translation>
+ </message>
+ <message>
+ <source>Create Source File</source>
+ <translation>Créer un fichier source</translation>
+ </message>
+ <message>
<source>Set &quot;%1&quot; as Active Project</source>
<translation>Définir «&#xa0;%1&#xa0;» comme le projet actif</translation>
</message>
@@ -39841,6 +40438,10 @@ Souhaitez-vous les ignorer&#xa0;?</translation>
<translation>&lt;b&gt;Avertissement :&lt;/b&gt; ce fichier est généré.</translation>
</message>
<message>
+ <source>&lt;b&gt;Warning:&lt;/b&gt; This file is inside the build directory.</source>
+ <translation>&lt;b&gt;Avertissement&#xa0;:&lt;/b&gt; le fichier est dans le répertoire de compilation.</translation>
+ </message>
+ <message>
<source>&lt;b&gt;Warning:&lt;/b&gt; This file is outside the project directory.</source>
<translation>&lt;b&gt;Avertissement :&lt;/b&gt; ce fichier est en dehors du répertoire du projet.</translation>
</message>
@@ -39918,6 +40519,18 @@ Souhaitez-vous les ignorer&#xa0;?</translation>
<translation>Échec de l’ouverture du projet «&#xa0;%1&#xa0;» : aucun greffon ne peut ouvrir le type de projet «&#xa0;%2&#xa0;».</translation>
</message>
<message>
+ <source>The following files could not be renamed: %1</source>
+ <translation>Les fichiers suivants n&apos;ont pas pu être renommés&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>The following files were renamed, but their project files could not be updated accordingly: %1</source>
+ <translation>Les fichiers suivants ont été renommés, mais les fichiers de projet n&apos;ont pas pu être mis à jour en conséquence&#xa0;: %1</translation>
+ </message>
+ <message>
+ <source>Renaming Did Not Fully Succeed</source>
+ <translation>Le renommage n&apos;a pas réussi</translation>
+ </message>
+ <message>
<source>Ignore All Errors?</source>
<translation>Ignorer toutes les erreurs&#xa0;?</translation>
</message>
@@ -40044,24 +40657,8 @@ Veuillez réessayer.</translation>
<translation>Échec de l’ajout du nouveau fichier «&#xa0;%1&#xa0;» au projet.</translation>
</message>
<message>
- <source>The project file %1 cannot be automatically changed.
-
-Rename %2 to %3 anyway?</source>
- <translation>Le fichier de projet %1 ne peut pas être modifié automatiquement.
-
-Renommer quand même %2 en %3&#xa0;?</translation>
- </message>
- <message>
- <source>The file %1 was renamed to %2, but the project file %3 could not be automatically changed.</source>
- <translation>Le fichier %1 a été renommé en %2, mais le fichier de projet %3 ne peut être modifié automatiquement.</translation>
- </message>
- <message>
- <source>The file %1 could not be renamed %2.</source>
- <translation>Le fichier %1 n’a pas pu être renommé en %2.</translation>
- </message>
- <message>
- <source>Cannot Rename File</source>
- <translation>Impossible de renommer le fichier</translation>
+ <source>%1 Log Directory</source>
+ <translation>Répertoire des logs de %1</translation>
</message>
<message>
<source>Locates files from all project directories. Append &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the given line number. Append another &quot;+&lt;number&gt;&quot; or &quot;:&lt;number&gt;&quot; to jump to the column number as well.</source>
@@ -40460,20 +41057,28 @@ Renommer quand même %2 en %3&#xa0;?</translation>
<translation>&amp;Continuer l’exécution</translation>
</message>
<message>
- <source>Cannot retrieve debugging output.</source>
- <translation>Impossible d’obtenir la sortie du débogage.</translation>
+ <source>Requesting process to stop ....</source>
+ <translation>Demande d&apos;arrêt du processus…</translation>
</message>
<message>
- <source>Remote process did not finish in time. Connectivity lost?</source>
- <translation>Le processus distant ne s&apos;est pas terminé dans le délai imparti. Connexion perdue&#xa0;?</translation>
+ <source>Stopping process forcefully ....</source>
+ <translation>Arrêt du processus avec force…</translation>
</message>
<message>
- <source>Cannot run: No command given.</source>
- <translation>Exécution impossible : aucune commande n’a été donnée.</translation>
+ <source>Process unexpectedly did not finish.</source>
+ <translation>Le processus ne s&apos;est pas terminé comme attendu.</translation>
</message>
<message>
- <source>%1 crashed.</source>
- <translation>%1 a planté.</translation>
+ <source>Connectivity lost?</source>
+ <translation>Connexion perdue&#xa0;?</translation>
+ </message>
+ <message>
+ <source>Cannot retrieve debugging output.</source>
+ <translation>Impossible d’obtenir la sortie du débogage.</translation>
+ </message>
+ <message>
+ <source>Cannot run: No command given.</source>
+ <translation>Exécution impossible : aucune commande n’a été donnée.</translation>
</message>
<message>
<source>The process was ended forcefully.</source>
@@ -41977,6 +42582,14 @@ Sélectionne un Qt optimisé pour bureaux pour compiler l&apos;application, si d
<translation>&lt;Pas d’autres projets dans cette session&gt;</translation>
</message>
<message>
+ <source>Deploy dependencies</source>
+ <translation>Déployer les dépendances</translation>
+ </message>
+ <message>
+ <source>Do not just build dependencies, but deploy them as well.</source>
+ <translation>Ne construit pas seulement les dépendances, mais effectue aussi le déploiement de celles-ci.</translation>
+ </message>
+ <message>
<source>Dependencies</source>
<translation>Dépendances</translation>
</message>
@@ -42275,10 +42888,6 @@ The name of the build configuration created by default for a generic project.</e
<translation>Copier les étapes d’un autre kit…</translation>
</message>
<message>
- <source>Enable Kit</source>
- <translation>Activer le kit</translation>
- </message>
- <message>
<source>The process crashed.</source>
<translation>Le processus a planté.</translation>
</message>
@@ -42499,8 +43108,8 @@ fails because Clang does not understand the target architecture.</source>
<translation>&lt;nobr&gt;&lt;b&gt;ABI :&lt;/b&gt; %1</translation>
</message>
<message>
- <source>not up-to-date</source>
- <translation>pas à jour</translation>
+ <source>Not all compilers are set up correctly.</source>
+ <translation>Tous les compilateurs n&apos;ont pas été correctement configurés.</translation>
</message>
<message>
<source>This toolchain is invalid.</source>
@@ -42640,6 +43249,15 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u
<translation>Retour à la ligne automatique</translation>
</message>
<message>
+ <source>Discard excessive output</source>
+ <translatorcomment>A revoir</translatorcomment>
+ <translation>Abandonner l&apos;excédant de la sortie</translation>
+ </message>
+ <message>
+ <source>If this option is enabled, application output will be discarded if it continuously comes in faster than it can be handled.</source>
+ <translation>Si cette option est activée, la sortie de l&apos;application sera perdue si celle-ci ne peut être gérée.</translation>
+ </message>
+ <message>
<source>Clear old output on a new run</source>
<translation>Effacer l’ancienne sortie lors d’une nouvelle exécution</translation>
</message>
@@ -42829,10 +43447,6 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u
<translation>Desktop</translation>
</message>
<message>
- <source>User requested stop. Shutting down...</source>
- <translation>L’utilisateur a demandé l’arrêt. Arrêt en cours…</translation>
- </message>
- <message>
<source>%1 (default for %2)</source>
<translation>%1 (défaut pour %2)</translation>
</message>
@@ -42961,10 +43575,6 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u
<translation>Racine du système</translation>
</message>
<message>
- <source>&lt;No compiler&gt;</source>
- <translation>&lt;Aucun compilateur&gt;</translation>
- </message>
- <message>
<source>Compiler</source>
<translation>Compilateur</translation>
</message>
@@ -43241,10 +43851,6 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u
<translation>Liste de mkspecs séparés par une virgule.</translation>
</message>
<message>
- <source>&amp;Compiler path:</source>
- <translation>Chemin du &amp;compilateur :</translation>
- </message>
- <message>
<source>&amp;Make path:</source>
<translation>Chemin de &amp;make :</translation>
</message>
@@ -43523,6 +44129,18 @@ Activez cette option si vous envisagez de créer des binaires x86 32 bits sans u
<translation>DebugBreakProcessus a échoué :</translation>
</message>
<message>
+ <source>%1 does not exist. If you built %2 yourself, check out https://code.qt.io/cgit/qt-creator/binary-artifacts.git/.</source>
+ <translation>L&apos;exécutable %1 n&apos;existe pas. Consultez https://code.qt.io/cgit/qt-creator/binary-artifacts.git/ si vous construisez l&apos;application %2 par vous-même.</translation>
+ </message>
+ <message>
+ <source>Cannot start %1. Check src\tools\win64interrupt\win64interrupt.c for more information.</source>
+ <translation>Impossible de démarrer %1. Consultez le fichier src\tools\win64interrupt\win64interrupt.c pour plus d&apos;informations.</translation>
+ </message>
+ <message>
+ <source>could not break the process.</source>
+ <translation>impossible d&apos;arrêter le processus.</translation>
+ </message>
+ <message>
<source>Import Build From...</source>
<translation>Importer la compilation depuis…</translation>
</message>
@@ -44050,6 +44668,10 @@ au projet «&#xa0;%2&#xa0;».</translation>
«&#xa0;%1&#xa0;» (%2).</translation>
</message>
<message>
+ <source>Subproject &quot;%1&quot; outside of &quot;%2&quot;.</source>
+ <translation>Sous-projet «&#xa0;%1&#xa0;» en dehors de «&#xa0;%2&#xa0;».</translation>
+ </message>
+ <message>
<source>Project File</source>
<translation>Fichier du projet</translation>
</message>
@@ -44564,10 +45186,6 @@ Que doit faire %1 maintenant&#xa0;?</translation>
<translation>X11 forwarding :</translation>
</message>
<message>
- <source>Forward to local display</source>
- <translation>Déporter vers un affichage local</translation>
- </message>
- <message>
<source>Source directory:</source>
<translation>Répertoire source :</translation>
</message>
@@ -44615,6 +45233,7 @@ Ces fichiers sont préservés.</numerusform>
</message>
<message>
<source>Files</source>
+ <extracomment>title in expanded session items in welcome mode</extracomment>
<translation>Fichiers</translation>
</message>
<message>
@@ -44731,8 +45350,12 @@ Ces fichiers sont préservés.</numerusform>
<translation>indisponible</translation>
</message>
<message>
- <source>You can edit this configuration inside the .qtcreator/project.json file.</source>
- <translation>Vous pouvez modifier cette configuration dans le fichier .qtcreator/project.json.</translation>
+ <source>Clone the configuration to change it. Or, make the changes in the .qtcreator/project.json file.</source>
+ <translation>Cloner la configuration ou modifier le fichier .qtcreator/project.json pour la modifier.</translation>
+ </message>
+ <message>
+ <source>Workspace Manager</source>
+ <translation>Gestionnaire des espaces de travail</translation>
</message>
<message>
<source>Exclude from Project</source>
@@ -44742,6 +45365,40 @@ Ces fichiers sont préservés.</numerusform>
<source>Rescan Workspace</source>
<translation>Ré-analyser l&apos;espace de travail</translation>
</message>
+ <message>
+ <source>You will need at least one port for QML debugging.</source>
+ <translation>Vous avez besoin d&apos;au moins un port pour le débogage QML.</translation>
+ </message>
+ <message>
+ <source>Machine type:</source>
+ <translation>Type de machine&#xa0;:</translation>
+ </message>
+ <message>
+ <source>Physical Device</source>
+ <translation>Périphérique physique</translation>
+ </message>
+ <message>
+ <source>Free ports:</source>
+ <translation>Ports libres&#xa0;:</translation>
+ </message>
+ <message>
+ <source>%1 at &quot;%2&quot;</source>
+ <extracomment>toolchain &apos;name&apos; at &apos;path&apos;</extracomment>
+ <translation>%1 dans «&#xa0;%2&#xa0;»</translation>
+ </message>
+ <message>
+ <source>&amp;Compiler path</source>
+ <translation>&amp;Emplacement du compilateur</translation>
+ </message>
+ <message>
+ <source>%1 compiler path</source>
+ <extracomment>%1 = programming language</extracomment>
+ <translation>Emplacement du compilateur %1</translation>
+ </message>
+ <message>
+ <source>Provide manually</source>
+ <translation>Fournir manuellement</translation>
+ </message>
</context>
<context>
<name>QtC::Python</name>
@@ -45336,8 +45993,14 @@ Ces fichiers sont préservés.</numerusform>
<translation>Modifier…</translation>
</message>
<message>
- <source>Additional Qbs Profile Settings</source>
- <translation>Paramètres supplémentaires du profil Qbs</translation>
+ <source>Qbs Profile Additions</source>
+ <translation>Ajouts au profil Qbs</translation>
+ </message>
+ <message>
+ <source>Additional module properties to set in the Qbs profile corresponding to this kit.
+You will rarely need to do this.</source>
+ <translation>Les propriétés de module supplémentaires à définir au profil Qbs correspondant à ce kit.
+Vous avez rarement besoin de ceci.</translation>
</message>
<message>
<source>Generated files</source>
@@ -45762,6 +46425,10 @@ Les fichiers affectés sont :
<translation>%1 La compilation sera écrasée.</translation>
</message>
<message>
+ <source>Starting qmake failed with the following error: %1</source>
+ <translation>Échec du démarrage de qmake avec l&apos;erreur suivante&#xa0;: %1</translation>
+ </message>
+ <message>
<source>The build directory should be at the same level as the source directory.</source>
<translation>Le répertoire de compilation doit être au même niveau que le répertoire source.</translation>
</message>
@@ -47052,6 +47719,14 @@ connaître une telle URI à l&apos;éditeur QML.</translation>
<translation>JavaScript peut casser les outils visuels dans Qt&#xa0;Design&#xa0;Studio.</translation>
</message>
<message>
+ <source>Arbitrary functions and function calls outside of a Connections object are not supported in a UI file (.ui.qml).</source>
+ <translation>Les fonctions arbitraires et les appels de fonctions en dehors d&apos;un objet Connections ne sont pas pris en charge dans un fichier UI (.ui.qml).</translation>
+ </message>
+ <message>
+ <source>A when condition cannot contain an object.</source>
+ <translation>Une condition when ne peut pas contenir un objet.</translation>
+ </message>
+ <message>
<source>Expression statements should be assignments, calls or delete expressions only.</source>
<translation>Les définitions d’expression devraient être des expression d’assignation, d’appel ou de suppression uniquement.</translation>
</message>
@@ -47148,10 +47823,6 @@ Pour plus d&apos;informations, allez à la documentation «&#xa0;Checking Code S
<translation>Le type (%1) n&apos;est pas supporté dans un fichier UI (.ui.qml).</translation>
</message>
<message>
- <source>Functions are not supported in a UI file (.ui.qml).</source>
- <translation>Les fonctions ne sont pas supportées dans un fichier UI (.ui.qml).</translation>
- </message>
- <message>
<source>JavaScript blocks are not supported in a UI file (.ui.qml).</source>
<translation>Les blocs de code JavaScript ne sont pas supportés dans un fichier UI (.ui.qml).</translation>
</message>
@@ -47534,6 +48205,10 @@ Veuillez compiler l’application qmldump à partir de la page d’options à pr
<translation>Créer des fichiers .qmlls.ini pour les nouveaux projets</translation>
</message>
<message>
+ <source>Enable semantic highlighting (experimental)</source>
+ <translation>Activer la mise en évidence sémantique (expérimental)</translation>
+ </message>
+ <message>
<source>Enabled</source>
<translation>Activé</translation>
</message>
@@ -47562,6 +48237,14 @@ Veuillez compiler l’application qmldump à partir de la page d’options à pr
<translation>Fonctionnalités</translation>
</message>
<message>
+ <source>Enable QML Language Server on this project.</source>
+ <translation>Activer le serveur de langage QML pour ce projet.</translation>
+ </message>
+ <message>
+ <source>Qt Quick</source>
+ <translation>Qt Quick</translation>
+ </message>
+ <message>
<source>Open .ui.qml files with:</source>
<translation>Ouvrir les fichiers .ui.qml avec&#xa0;:</translation>
</message>
@@ -48921,8 +49604,8 @@ Qt Design Studio nécessite un projet fondé sur .qmlproject pour ouvrir le fich
<translation>Exporter le projet</translation>
</message>
<message>
- <source>Enable Automatic CMake Generation</source>
- <translation>Activer la génération automatique de CMake</translation>
+ <source>Enable CMake Generator</source>
+ <translation>Activer le générateur CMake</translation>
</message>
</context>
<context>
@@ -49063,10 +49746,6 @@ Qt Design Studio nécessite un projet fondé sur .qmlproject pour ouvrir le fich
<translation>QCC</translation>
</message>
<message>
- <source>&amp;Compiler path:</source>
- <translation>Chemin du &amp;compilateur :</translation>
- </message>
- <message>
<source>SDP path:</source>
<extracomment>SDP refers to &apos;Software Development Platform&apos;.</extracomment>
<translation>Chemin de la plateforme de développement logiciel&#xa0;:</translation>
@@ -49538,6 +50217,14 @@ Le déploiement vers ce répertoire entrainera la suppression des fichiers déj�
<translation>Les ABI suivantes ne sont actuellement pas prises en charge : %1</translation>
</message>
<message>
+ <source>Error</source>
+ <translation>Erreur</translation>
+ </message>
+ <message>
+ <source>Warning</source>
+ <translation>Avertissement</translation>
+ </message>
+ <message>
<source>Select a qmake Executable</source>
<translation>Sélectionner un exécutable qmake</translation>
</message>
@@ -49690,10 +50377,6 @@ Le déploiement vers ce répertoire entrainera la suppression des fichiers déj�
<translation>Chemin vers l’exécutable de qmake</translation>
</message>
<message>
- <source>%1 (invalid)</source>
- <translation>%1 (invalide)</translation>
- </message>
- <message>
<source>Qt version</source>
<translation>Version de Qt</translation>
</message>
@@ -50041,6 +50724,10 @@ Le processus de contrôle n&apos;a pas pu démarrer.</translation>
<translation>Échec de connexion SSH&#xa0;:</translation>
</message>
<message>
+ <source>The process crashed.</source>
+ <translation>Le processus a planté.</translation>
+ </message>
+ <message>
<source>Remote Linux</source>
<translation>Linux distant</translation>
</message>
@@ -50057,10 +50744,6 @@ Le processus de contrôle n&apos;a pas pu démarrer.</translation>
<translation>Impossible d&apos;envoyer un signal de contrôle au périphérique %1. Le périphérique est peut-être déconnecté.</translation>
</message>
<message>
- <source>Device &quot;%1&quot; is disconnected.</source>
- <translation>Le périphérique «&#xa0;%1&#xa0;» est déconnecté.</translation>
- </message>
- <message>
<source>Deploy Public Key...</source>
<translation>Déployer la clé publique…</translation>
</message>
@@ -52658,7 +53341,7 @@ Impossible d&apos;ouvrir le fichier «&#xa0;%1&#xa0;».</translation>
</message>
<message>
<source>Log count:</source>
- <translation>Nombre d’entrées de log :</translation>
+ <translation>Nombre d&apos;entrées de log&#xa0;:</translation>
</message>
<message>
<source>Subversion Command</source>
@@ -52681,10 +53364,6 @@ Impossible d&apos;ouvrir le fichier «&#xa0;%1&#xa0;».</translation>
<translation>Alt+S,Alt+A</translation>
</message>
<message>
- <source>Diff Project</source>
- <translation>Faire un diff sur le projet</translation>
- </message>
- <message>
<source>Diff Current File</source>
<translation>Faire un diff du fichier actuel</translation>
</message>
@@ -52733,10 +53412,6 @@ Impossible d&apos;ouvrir le fichier «&#xa0;%1&#xa0;».</translation>
<translation>Décrire…</translation>
</message>
<message>
- <source>Project Status</source>
- <translation>État du projet</translation>
- </message>
- <message>
<source>Triggers a Subversion version control operation.</source>
<translation>Déclenche une opération du gestionnaire de versions Subversion.</translation>
</message>
@@ -52769,64 +53444,72 @@ Impossible d&apos;ouvrir le fichier «&#xa0;%1&#xa0;».</translation>
<translation>Rétablir «&#xa0;%1&#xa0;»…</translation>
</message>
<message>
- <source>Diff Project &quot;%1&quot;</source>
- <translation>Réaliser un diff du projet «&#xa0;%1&#xa0;»</translation>
+ <source>Diff Repository</source>
+ <translation>Réaliser un diff du dépôt</translation>
</message>
<message>
- <source>Status of Project &quot;%1&quot;</source>
- <translation>État du projet «&#xa0;%1&#xa0;»</translation>
+ <source>Repository Status</source>
+ <translation>État du dépôt</translation>
</message>
<message>
- <source>Log Project</source>
- <translation>Réaliser un log du projet</translation>
+ <source>Log Repository</source>
+ <translation>Log du dépôt</translation>
</message>
<message>
- <source>Log Project &quot;%1&quot;</source>
- <translation>Réaliser un log du projet «&#xa0;%1&#xa0;»</translation>
+ <source>Update Repository</source>
+ <translation>Mettre à jour le dépôt</translation>
</message>
<message>
- <source>Update Project</source>
- <translation>Mettre à jour le projet</translation>
+ <source>Revert Repository...</source>
+ <translation>Rétablir le dépôt…</translation>
</message>
<message>
- <source>Update Project &quot;%1&quot;</source>
- <translation>Mettre à jour le projet «&#xa0;%1&#xa0;»</translation>
+ <source>No subversion executable specified.</source>
+ <translation>Aucun exécutable Subversion n’a été spécifié.</translation>
</message>
<message>
- <source>Commit Project</source>
- <translation>Faire un commit du projet</translation>
+ <source>Revert repository</source>
+ <translation>Rétablir le dépôt</translation>
</message>
<message>
- <source>Commit Project &quot;%1&quot;</source>
- <translation>Faire un commit du projet «&#xa0;%1&#xa0;»</translation>
+ <source>Diff Project Directory</source>
+ <translation>Réaliser un diff du répertoire du projet</translation>
</message>
<message>
- <source>Diff Repository</source>
- <translation>Réaliser un diff du dépôt</translation>
+ <source>Diff Directory of Project &quot;%1&quot;</source>
+ <translation>Réaliser un diff du répertoire du projet «&#xa0;%1&#xa0;»</translation>
</message>
<message>
- <source>Repository Status</source>
- <translation>État du dépôt</translation>
+ <source>Project Directory Status</source>
+ <translation>État du répertoire du projet</translation>
</message>
<message>
- <source>Log Repository</source>
- <translation>Log du dépôt</translation>
+ <source>Status of Directory of Project &quot;%1&quot;</source>
+ <translation>État du répertoire du projet «&#xa0;%1&#xa0;»</translation>
</message>
<message>
- <source>Update Repository</source>
- <translation>Mettre à jour le dépôt</translation>
+ <source>Log Project Directory</source>
+ <translation>Log du répertoire du projet</translation>
</message>
<message>
- <source>Revert Repository...</source>
- <translation>Rétablir le dépôt…</translation>
+ <source>Log Directory of Project &quot;%1&quot;</source>
+ <translation>Log du répertoire du projet «&#xa0;%1&#xa0;»</translation>
</message>
<message>
- <source>No subversion executable specified.</source>
- <translation>Aucun exécutable Subversion n’a été spécifié.</translation>
+ <source>Update Project Directory</source>
+ <translation>Mettre à jour le répertoire du projet</translation>
</message>
<message>
- <source>Revert repository</source>
- <translation>Rétablir le dépôt</translation>
+ <source>Update Directory of Project &quot;%1&quot;</source>
+ <translation>Mettre à jour le répertoire du projet «&#xa0;%1&#xa0;»</translation>
+ </message>
+ <message>
+ <source>Commit Project Directory</source>
+ <translation>Commit le répertoire du projet</translation>
+ </message>
+ <message>
+ <source>Commit Directory of Project &quot;%1&quot;</source>
+ <translation>Commit le répertoire du projet «&#xa0;%1&#xa0;»</translation>
</message>
<message>
<source>Revert all pending changes to the repository?</source>
@@ -53179,6 +53862,22 @@ Impossible d&apos;ouvrir le fichier «&#xa0;%1&#xa0;».</translation>
<translation>Modifier le signet</translation>
</message>
<message>
+ <source>Ctrl+Alt+.</source>
+ <translation>Ctrl+Alt+.</translation>
+ </message>
+ <message>
+ <source>Ctrl+Alt+,</source>
+ <translation>Ctrl+Alt+,</translation>
+ </message>
+ <message>
+ <source>Sort by Filenames</source>
+ <translation>Trier par nom de fichiers</translation>
+ </message>
+ <message>
+ <source>Ctrl+Alt+P</source>
+ <translation>Ctrl+Alt+P</translation>
+ </message>
+ <message>
<source>Line number:</source>
<translation>Numéro de ligne&#xa0;:</translation>
</message>
@@ -54509,6 +55208,14 @@ Pour styliser les opérateurs définis par l’utilisateur, utilisez l’opérat
<translation>Macros.</translation>
</message>
<message>
+ <source>Attribute</source>
+ <translation>Attribut</translation>
+ </message>
+ <message>
+ <source>Attributes.</source>
+ <translation>Attributs.</translation>
+ </message>
+ <message>
<source>Whitespace.
Will not be applied to whitespace in comments and strings.</source>
<translation>Espace blanc.
@@ -55161,6 +55868,22 @@ Ne s’applique pas aux espaces blancs dans les commentaires et dans les chaîne
<translation>Se rappeler de mon choix</translation>
</message>
<message>
+ <source>Fold Recursively</source>
+ <translation>Plier de manière récursive</translation>
+ </message>
+ <message>
+ <source>Fold All</source>
+ <translation>Tout plier</translation>
+ </message>
+ <message>
+ <source>Unfold Recursively</source>
+ <translation>Déplier de manière récursive</translation>
+ </message>
+ <message>
+ <source>Unfold All</source>
+ <translation>Tout déplier</translation>
+ </message>
+ <message>
<source>Zoom: %1%</source>
<translation>Zoom : %1&#xa0;%</translation>
</message>
@@ -55984,8 +56707,9 @@ Influence l’indentation des lignes de continuation.
<translation>Git Blame</translation>
</message>
<message>
- <source>Copy SHA1 to Clipboard</source>
- <translation>Copier le SHA1 dans le presse-papiers</translation>
+ <source>Copy Hash to Clipboard</source>
+ <translatorcomment>J&apos;ai vu hashage?</translatorcomment>
+ <translation>Copier le hachage dans le presse-papiers</translation>
</message>
<message>
<source>&lt;b&gt;Note:&lt;/b&gt; &quot;%1&quot; or &quot;%2&quot; is enabled in the instant blame settings.</source>
@@ -56128,6 +56852,26 @@ Influence l’indentation des lignes de continuation.
<source>Reloads the type hierarchy for the symbol under the cursor.</source>
<translation>Recharge la hiérarchie de type pour le symbole sous le curseur.</translation>
</message>
+ <message>
+ <source>Select Previous Suggestion</source>
+ <translation>Sélectionner la suggestion précédente</translation>
+ </message>
+ <message>
+ <source>Select Next Suggestion</source>
+ <translation>Sélectionner la suggestion suivante</translation>
+ </message>
+ <message>
+ <source>Apply (%1)</source>
+ <translation>Appliquer (%1)</translation>
+ </message>
+ <message>
+ <source>Apply Word (%1)</source>
+ <translation>Appliquer le mot (%1)</translation>
+ </message>
+ <message>
+ <source>Apply Line</source>
+ <translation>Appliquer la ligne</translation>
+ </message>
</context>
<context>
<name>QtC::Todo</name>
@@ -56697,6 +57441,10 @@ Les données de la trace sont perdues.</translation>
<translation>Saisir le nom du projet</translation>
</message>
<message>
+ <source>Add to project:</source>
+ <translation>Ajouter au projet&#xa0;:</translation>
+ </message>
+ <message>
<source>Name:</source>
<translation>Nom :</translation>
</message>
@@ -56705,6 +57453,10 @@ Les données de la trace sont perdues.</translation>
<translation>Créer dans :</translation>
</message>
<message>
+ <source>Chosen project wizard does not support the build system.</source>
+ <translation>L&apos;assistant de création de projet sélectionné ne prend pas en charge le système de compilation.</translation>
+ </message>
+ <message>
<source>Directory &quot;%1&quot; will be created.</source>
<translation>Le répertoire «&#xa0;%1&#xa0;» sera créé.</translation>
</message>
@@ -56918,6 +57670,10 @@ Les données de la trace sont perdues.</translation>
<translation>Le chemin «&#xa0;%1&#xa0;» existe mais n&apos;est pas un répertoire inscriptible.</translation>
</message>
<message>
+ <source>removeFile is not implemented for &quot;%1&quot;.</source>
+ <translation>removeFile n&apos;est pas implémenté pour «&#xa0;%1&#xa0;».</translation>
+ </message>
+ <message>
<source>Cannot copy from &quot;%1&quot;, it is not a directory.</source>
<translation>Impossible de copier depuis «&#xa0;%1&#xa0;», ce n&apos;est pas un répertoire.</translation>
</message>
@@ -56926,6 +57682,10 @@ Les données de la trace sont perdues.</translation>
<translation>Impossible de copier «&#xa0;%1&#xa0;» vers «&#xa0;%2&#xa0;»&#xa0;: %3</translation>
</message>
<message>
+ <source>renameFile is not implemented for &quot;%1&quot;.</source>
+ <translation>renameFile n&apos;est pas implémenté pour «&#xa0;%1&#xa0;».</translation>
+ </message>
+ <message>
<source>fileContents is not implemented for &quot;%1&quot;.</source>
<translation>fileContents n&apos;est pas implémenté pour «&#xa0;%1&#xa0;».</translation>
</message>
@@ -56942,6 +57702,14 @@ Les données de la trace sont perdues.</translation>
<translation>L&apos;observation n&apos;est pas implémentée.</translation>
</message>
<message>
+ <source>Failed to watch &quot;%1&quot;.</source>
+ <translation>Impossible de surveiller «&#xa0;%1&#xa0;».</translation>
+ </message>
+ <message>
+ <source>Failed to watch &quot;%1&quot;, it does not exist.</source>
+ <translation>Impossible de surveiller «&#xa0;%1&#xa0;», l'emplacement n&apos;existe pas.</translation>
+ </message>
+ <message>
<source>Refusing to remove the standard directory &quot;%1&quot;.</source>
<translation>Refus de suppression du répertoire standard «&#xa0;%1&#xa0;».</translation>
</message>
@@ -56961,6 +57729,10 @@ Les données de la trace sont perdues.</translation>
<source>Failed to remove file &quot;%1&quot;.</source>
<translation>Échec de la suppression du fichier «&#xa0;%1&#xa0;».</translation>
</message>
+ <message>
+ <source>Failed to rename file &quot;%1&quot; to &quot;%2&quot;: %3</source>
+ <translation>Impossible de renommer le fichier «&#xa0;%1&#xa0;» en «&#xa0;%2&#xa0;»&#xa0;: %3</translation>
+ </message>
<message numerus="yes">
<source>Could not write to file &quot;%1&quot; (only %2 of %n byte(s) written).</source>
<translation>
@@ -57057,6 +57829,10 @@ Les données de la trace sont perdues.</translation>
<translation>Impossible de copier le fichier «&#xa0;%1&#xa0;» vers «&#xa0;%2&#xa0;».</translation>
</message>
<message>
+ <source>Failed to set up scratch buffer in &quot;%1&quot;.</source>
+ <translation>Impossible d&apos;initialiser un brouillon dans «&#xa0;%1&#xa0;».</translation>
+ </message>
+ <message>
<source>Failed to create directory &quot;%1&quot;.</source>
<translation>Échec de la création du répertoire «&#xa0;%1&#xa0;».</translation>
</message>
@@ -57245,6 +58021,10 @@ dans «&#xa0;%2&#xa0;».
<translation>Impossible de définir les autorisations sur «&#xa0;%1&#xa0;»</translation>
</message>
<message>
+ <source>Failed to move %1 to %2. Removing the source file failed: %3</source>
+ <translation>Échec lors du déplacement de %1 vers %2. La suppression du fichier source a échoué&#xa0;: %3</translation>
+ </message>
+ <message>
<source>No &quot;localSource&quot; device hook set.</source>
<translation>Aucun crochet de périphérique «&#xa0;localSource&#xa0;» défini.</translation>
</message>
@@ -57354,6 +58134,10 @@ dans «&#xa0;%2&#xa0;».
<translation>Erreur de récursivité infinie</translation>
</message>
<message>
+ <source>Failed to expand macros in process arguments: %1</source>
+ <translation>Impossible de développer les macros dans les arguments du processus&#xa0;: %1</translation>
+ </message>
+ <message>
<source>%1: Full path including file name.</source>
<translation>%1 : chemin complet comprenant le nom du fichier.</translation>
</message>
@@ -59249,6 +60033,10 @@ si un dépôt requiert une authentification SSH (voir la documentation sur SSH e
<source>Select a&amp;ll</source>
<translation>Tout &amp;sélectionner</translation>
</message>
+ <message>
+ <source>Cannot commit: %1</source>
+ <translation>Impossible de commit&#xa0;: %1</translation>
+ </message>
<message numerus="yes">
<source>%1 %2/%n File(s)</source>
<translation>
@@ -59397,6 +60185,22 @@ si un dépôt requiert une authentification SSH (voir la documentation sur SSH e
<translation>Définition des variables d’environnement :</translation>
</message>
<message>
+ <source>The chosen directory is an emsdk location.</source>
+ <translation>Le répertoire choisi contient un SDK Emscripten (emsdk).</translation>
+ </message>
+ <message>
+ <source>An SDK is installed.</source>
+ <translation>Un SDK est installé.</translation>
+ </message>
+ <message>
+ <source>An SDK is activated.</source>
+ <translation>Un SDK est activé.</translation>
+ </message>
+ <message>
+ <source>The activated SDK is usable by %1.</source>
+ <translation>Le SDK activé peut être utilisé par %1.</translation>
+ </message>
+ <message>
<source>The activated version %1 is not supported by %2. Activate version %3 or higher.</source>
<translation>La version activée %1 n’est pas prise en charge par %2. Activez la version %3 ou une version supérieure.</translation>
</message>
@@ -60503,8 +61307,8 @@ définit dans la taille de pas.</translation>
<translation>Définit la direction du flux des éléments dans l&apos;&lt;b&gt;agencement en ligne&lt;/b&gt;.</translation>
</message>
<message>
- <source>Uniform cell size</source>
- <translation>Taille de cellules uniforme</translation>
+ <source>Uniform cell sizes</source>
+ <translation>Tailles de cellule uniformes</translation>
</message>
<message>
<source>Toggles all cells to have a uniform size.</source>
diff --git a/src/app/main.cpp b/src/app/main.cpp
index f090c3e2d35..9617037e3e6 100644
--- a/src/app/main.cpp
+++ b/src/app/main.cpp
@@ -933,8 +933,13 @@ int main(int argc, char **argv)
// shutdown plugin manager on the exit
QObject::connect(&app, &QCoreApplication::aboutToQuit, &pluginManager, &PluginManager::shutdown);
- if (Utils::HostOsInfo::isWindowsHost()) // Workaround for QTBUG-130696 and QTCREATORBUG-31890
+ if (Utils::HostOsInfo::isWindowsHost()) {
+ // Workaround for QTBUG-130696 and QTCREATORBUG-31890
QApplication::setEffectEnabled(Qt::UI_FadeMenu, false);
+ // Disable menu animation which just looks bad
+ QApplication::setEffectEnabled(Qt::UI_AnimateMenu, false);
+ }
+
return restarter.restartOrExit(app.exec());
}
diff --git a/src/libs/3rdparty/libptyqt/conptyprocess.cpp b/src/libs/3rdparty/libptyqt/conptyprocess.cpp
index c957e0bdd9e..d8f0608ef16 100644
--- a/src/libs/3rdparty/libptyqt/conptyprocess.cpp
+++ b/src/libs/3rdparty/libptyqt/conptyprocess.cpp
@@ -988,8 +988,11 @@ bool ConPtyProcess::startProcess(const QString &executable,
GetExitCodeProcess(hEvent, &exitCode);
m_exitCode = exitCode;
// Do not respawn if the object is about to be destructed
- if (!m_aboutToDestruct)
- emit notifier()->aboutToClose();
+ if (!m_aboutToDestruct) {
+ ConptyClosePseudoConsole(m_ptyHandler);
+ m_ptyHandler = INVALID_HANDLE_VALUE;
+ emit notifier() -> aboutToClose();
+ }
m_shellCloseWaitNotifier->setEnabled(false);
}, Qt::QueuedConnection);
@@ -1028,7 +1031,7 @@ bool ConPtyProcess::startProcess(const QString &executable,
bool ConPtyProcess::resize(qint16 cols, qint16 rows)
{
- if (m_ptyHandler == nullptr)
+ if (m_ptyHandler == INVALID_HANDLE_VALUE)
{
return false;
}
@@ -1047,49 +1050,45 @@ bool ConPtyProcess::resize(qint16 cols, qint16 rows)
bool ConPtyProcess::kill()
{
- bool exitCode = false;
-
if (m_ptyHandler != INVALID_HANDLE_VALUE) {
m_aboutToDestruct = true;
// Close ConPTY - this will terminate client process if running
WindowsContext::instance().closePseudoConsole(m_ptyHandler);
+ }
- // Clean-up the pipes
- if (INVALID_HANDLE_VALUE != m_hPipeOut)
- CloseHandle(m_hPipeOut);
- if (INVALID_HANDLE_VALUE != m_hPipeIn)
- CloseHandle(m_hPipeIn);
-
- if (m_readThread) {
- m_readThread->requestInterruption();
- if (!m_readThread->wait(1000))
- m_readThread->terminate();
- m_readThread->deleteLater();
- m_readThread = nullptr;
- }
-
- delete m_shellCloseWaitNotifier;
- m_shellCloseWaitNotifier = nullptr;
+ // Clean-up the pipes
+ if (INVALID_HANDLE_VALUE != m_hPipeOut)
+ CloseHandle(m_hPipeOut);
+ if (INVALID_HANDLE_VALUE != m_hPipeIn)
+ CloseHandle(m_hPipeIn);
+
+ if (m_readThread) {
+ m_readThread->requestInterruption();
+ if (!m_readThread->wait(1000))
+ m_readThread->terminate();
+ m_readThread->deleteLater();
+ m_readThread = nullptr;
+ }
- m_pid = 0;
- m_ptyHandler = INVALID_HANDLE_VALUE;
- m_hPipeIn = INVALID_HANDLE_VALUE;
- m_hPipeOut = INVALID_HANDLE_VALUE;
+ delete m_shellCloseWaitNotifier;
+ m_shellCloseWaitNotifier = nullptr;
- CloseHandle(m_shellProcessInformation.hThread);
- CloseHandle(m_shellProcessInformation.hProcess);
+ m_pid = 0;
+ m_ptyHandler = INVALID_HANDLE_VALUE;
+ m_hPipeIn = INVALID_HANDLE_VALUE;
+ m_hPipeOut = INVALID_HANDLE_VALUE;
- // Cleanup attribute list
- if (m_shellStartupInfo.lpAttributeList) {
- DeleteProcThreadAttributeList(m_shellStartupInfo.lpAttributeList);
- HeapFree(GetProcessHeap(), 0, m_shellStartupInfo.lpAttributeList);
- }
+ CloseHandle(m_shellProcessInformation.hThread);
+ CloseHandle(m_shellProcessInformation.hProcess);
- exitCode = true;
+ // Cleanup attribute list
+ if (m_shellStartupInfo.lpAttributeList) {
+ DeleteProcThreadAttributeList(m_shellStartupInfo.lpAttributeList);
+ HeapFree(GetProcessHeap(), 0, m_shellStartupInfo.lpAttributeList);
}
- return exitCode;
+ return true;
}
IPtyProcess::PtyType ConPtyProcess::type()
diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp
index ef87925be0e..c47c648c88a 100644
--- a/src/libs/utils/fileutils.cpp
+++ b/src/libs/utils/fileutils.cpp
@@ -731,7 +731,7 @@ Result FileUtils::copyIfDifferent(const FilePath &srcFilePath, const FilePath &t
if (srcModified == tgtModified) {
// TODO: Create FilePath::hashFromContents() and compare hashes.
const expected_str<QByteArray> srcContents = srcFilePath.fileContents();
- const expected_str<QByteArray> tgtContents = srcFilePath.fileContents();
+ const expected_str<QByteArray> tgtContents = tgtFilePath.fileContents();
if (srcContents && srcContents == tgtContents)
return Result::Ok;
}
diff --git a/src/libs/utils/icondisplay.cpp b/src/libs/utils/icondisplay.cpp
index 1c9f9f6520f..93999708905 100644
--- a/src/libs/utils/icondisplay.cpp
+++ b/src/libs/utils/icondisplay.cpp
@@ -15,7 +15,6 @@ namespace Utils
class IconDisplayPrivate
{
public:
- QSize m_iconSize;
QIcon m_icon;
};
@@ -52,7 +51,10 @@ QSize IconDisplay::sizeHint() const
if (d->m_icon.isNull())
return {};
- return d->m_icon.availableSizes().first();
+ if (auto sizes = d->m_icon.availableSizes(); !sizes.isEmpty())
+ return sizes.first();
+
+ return {};
}
void IconDisplay::setIcon(const Icon &icon)
diff --git a/src/libs/utils/mimetypes2/mimedatabase.cpp b/src/libs/utils/mimetypes2/mimedatabase.cpp
index 68d513b5ff9..ff6346dae3d 100644
--- a/src/libs/utils/mimetypes2/mimedatabase.cpp
+++ b/src/libs/utils/mimetypes2/mimedatabase.cpp
@@ -126,6 +126,27 @@ void MimeDatabasePrivate::loadProviders()
if (!m_additionalData.contains("utilslib.mimetypes")) {
m_additionalData.insert("utilslib.mimetypes", QByteArray(R"--(<?xml version="1.0"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+ <mime-type type="text/plain">
+ <magic priority="20">
+ <match value="This is TeX," type="string" offset="0"/>
+ <match value="This is METAFONT," type="string" offset="0"/>
+ <match value="/*" type="string" offset="0"/>
+ <match value="//" type="string" offset="0"/>
+ <match value=";;" type="string" offset="0"/>
+ <!-- UTF-16BE BOM -->
+ <match value="\xfe\xff" type="string" offset="0"/>
+ <!-- UTF-16LE BOM -->
+ <match value="\xff\xfe" type="string" offset="0"/>
+ <!-- UTF-8 BOM -->
+ <match value="\xef\xbb\xbf" type="string" offset="0"/>
+ </magic>
+
+ <glob pattern="*.txt"/>
+ <glob pattern="*.text"/>
+ <glob pattern="*.def"/>
+ <glob pattern="*.list"/>
+ <glob pattern="*.in"/>
+ </mime-type>
<mime-type type="application/x-compressed-tar">
<comment>Tar archive (gzip-compressed)</comment>
<sub-class-of type="application/gzip"/>
diff --git a/src/libs/utils/qtcprocess.cpp b/src/libs/utils/qtcprocess.cpp
index af4833c3ff2..4bcaad92a15 100644
--- a/src/libs/utils/qtcprocess.cpp
+++ b/src/libs/utils/qtcprocess.cpp
@@ -403,13 +403,22 @@ public:
static_cast<Pty::PtyInputFlag>(m_inputFlags.toInt()));
}
- emit readyRead(m_ptyProcess->readAll(), {});
+ const QByteArray data = m_ptyProcess->readAll();
+ if (!data.isEmpty())
+ emit readyRead(data, {});
});
connect(m_ptyProcess->notifier(), &QIODevice::aboutToClose, this, [this] {
if (m_ptyProcess) {
const ProcessResultData result
= {m_ptyProcess->exitCode(), QProcess::NormalExit, QProcess::UnknownError, {}};
+
+ const QByteArray restOfOutput = m_ptyProcess->readAll();
+ if (!restOfOutput.isEmpty()) {
+ emit readyRead(restOfOutput, {});
+ m_ptyProcess->notifier()->disconnect();
+ }
+
emit done(result);
return;
}
diff --git a/src/libs/utils/stringutils.cpp b/src/libs/utils/stringutils.cpp
index 2aa2f760427..dae35b817ba 100644
--- a/src/libs/utils/stringutils.cpp
+++ b/src/libs/utils/stringutils.cpp
@@ -106,100 +106,132 @@ QTCREATOR_UTILS_EXPORT bool readMultiLineString(const QJsonValue &value, QString
return true;
}
+enum class Base { Dec, Hex };
+
+static bool isHex(const QChar &c)
+{
+ return (c >= 'a' && c <= 'f') || (c >= 'A' && c < 'F');
+}
+
+static bool isDigit(const QChar &c, Base base)
+{
+ if (base == Base::Hex && isHex(c))
+ return true;
+ return c.isDigit();
+}
+
+static int trailingNumber(const QString &line, Base base = Base::Dec)
+{
+ int lastNumberPos = line.size();
+ while (lastNumberPos > 0) {
+ if (!isDigit(line.at(lastNumberPos - 1), base))
+ break;
+ --lastNumberPos;
+ }
+ bool ok = true;
+ const int port = line.mid(lastNumberPos).toInt(&ok, base == Base::Dec ? 10 : 16);
+ return ok ? port : -1;
+}
+
+/*
+
+Parsing algo is simple:
+Depending on the value of 1st column we detect whether it's Win, Mac / Android / Qnx, or Linux
+output.
+
+In case of Win or Linux, we select the 2nd column for port parsing, otherwise we select
+the 4th column.
+
+For selected column we parse the trailing digits. In case of Linux we take into account hex digits.
+
+Expected output (see tst_StringUtils::testParseUsedPortFromNetstatOutput_data()):
+
+ === Windows ===
+
+ Active Connections
+
+ Proto Local Address Foreign Address State
+ TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
+ TCP 0.0.0.0:113 0.0.0.0:0 LISTENING
+ [...]
+ TCP 10.9.78.4:14714 0.0.0.0:0 LISTENING
+ TCP 10.9.78.4:50233 12.13.135.180:993 ESTABLISHED
+ [...]
+ TCP [::]:445 [::]:0 LISTENING
+ TCP 192.168.0.80:51905 169.55.74.50:443 ESTABLISHED
+ UDP [fe80::880a:2932:8dff:a858%6]:1900 *:*
+
+ === Mac ===
+
+ Active Internet connections (including servers)
+ Proto Recv-Q Send-Q Local Address Foreign Address (state)
+ tcp4 0 0 192.168.1.12.55687 88.198.14.66.443 ESTABLISHED
+ tcp6 0 0 2a01:e34:ee42:d0.55684 2a02:26f0:ff::5c.443 ESTABLISHED
+ [...]
+ tcp4 0 0 *.631 *.* LISTEN
+ tcp6 0 0 *.631 *.* LISTEN
+ [...]
+ udp4 0 0 192.168.79.1.123 *.*
+ udp4 0 0 192.168.8.1.123 *.*
+
+ === QNX ===
+
+ Active Internet connections (including servers)
+ Proto Recv-Q Send-Q Local Address Foreign Address State
+ tcp 0 0 10.9.7.5.22 10.9.7.4.46592 ESTABLISHED
+ tcp 0 0 *.8000 *.* LISTEN
+ tcp 0 0 *.22 *.* LISTEN
+ udp 0 0 *.* *.*
+ udp 0 0 *.* *.*
+ Active Internet6 connections (including servers)
+ Proto Recv-Q Send-Q Local Address Foreign Address (state)
+ tcp6 0 0 *.22 *.* LISTEN
+
+ === Android ===
+
+ tcp 0 0 10.0.2.16:49088 142.250.180.74:443 ESTABLISHED
+ tcp 0 0 10.0.2.16:48380 142.250.186.196:443 CLOSE_WAIT
+ tcp6 0 0 [::]:5555 [::]:* LISTEN
+ tcp6 0 0 ::ffff:127.0.0.1:39417 [::]:* LISTEN
+ tcp6 0 0 ::ffff:10.0.2.16:35046 ::ffff:142.250.203.:443 ESTABLISHED
+ tcp6 0 0 ::ffff:127.0.0.1:46265 ::ffff:127.0.0.1:33155 TIME_WAIT
+ udp 0 0 10.0.2.16:50950 142.250.75.14:443 ESTABLISHED
+ udp 2560 0 10.0.2.16:68 10.0.2.2:67 ESTABLISHED
+ udp 0 0 0.0.0.0:5353 0.0.0.0:*
+ udp6 0 0 [::]:36662 [::]:*
+
+ === Linux ===
+
+ sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt ...
+ 0: 00000000:2805 00000000:0000 0A 00000000:00000000 00:00000000 00000000 ...
+*/
QTCREATOR_UTILS_EXPORT int parseUsedPortFromNetstatOutput(const QByteArray &line)
{
- const QByteArray trimmed = line.trimmed();
- int base = 0;
- QByteArray portString;
-
- if (trimmed.startsWith("TCP") || trimmed.startsWith("UDP")) {
- // Windows. Expected output is something like
- //
- // Active Connections
- //
- // Proto Local Address Foreign Address State
- // TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
- // TCP 0.0.0.0:113 0.0.0.0:0 LISTENING
- // [...]
- // TCP 10.9.78.4:14714 0.0.0.0:0 LISTENING
- // TCP 10.9.78.4:50233 12.13.135.180:993 ESTABLISHED
- // [...]
- // TCP [::]:445 [::]:0 LISTENING
- // TCP 192.168.0.80:51905 169.55.74.50:443 ESTABLISHED
- // UDP [fe80::880a:2932:8dff:a858%6]:1900 *:*
- const int firstBracketPos = trimmed.indexOf('[');
- int colonPos = -1;
- if (firstBracketPos == -1) {
- colonPos = trimmed.indexOf(':'); // IPv4
- } else {
- // jump over host part
- const int secondBracketPos = trimmed.indexOf(']', firstBracketPos + 1);
- colonPos = trimmed.indexOf(':', secondBracketPos);
- }
- const int firstDigitPos = colonPos + 1;
- const int spacePos = trimmed.indexOf(' ', firstDigitPos);
- if (spacePos < 0)
- return -1;
- const int len = spacePos - firstDigitPos;
- base = 10;
- portString = trimmed.mid(firstDigitPos, len);
- } else if (trimmed.startsWith("tcp") || trimmed.startsWith("udp")) {
- // macOS. Expected output is something like
- //
- // Active Internet connections (including servers)
- // Proto Recv-Q Send-Q Local Address Foreign Address (state)
- // tcp4 0 0 192.168.1.12.55687 88.198.14.66.443 ESTABLISHED
- // tcp6 0 0 2a01:e34:ee42:d0.55684 2a02:26f0:ff::5c.443 ESTABLISHED
- // [...]
- // tcp4 0 0 *.631 *.* LISTEN
- // tcp6 0 0 *.631 *.* LISTEN
- // [...]
- // udp4 0 0 192.168.79.1.123 *.*
- // udp4 0 0 192.168.8.1.123 *.*
- int firstDigitPos = -1;
- int spacePos = -1;
- if (trimmed[3] == '6') {
- // IPV6
- firstDigitPos = trimmed.indexOf('.') + 1;
- spacePos = trimmed.indexOf(' ', firstDigitPos);
- } else {
- // IPV4
- firstDigitPos = trimmed.indexOf('.') + 1;
- spacePos = trimmed.indexOf(' ', firstDigitPos);
- firstDigitPos = trimmed.lastIndexOf('.', spacePos) + 1;
- }
- if (spacePos < 0)
- return -1;
- base = 10;
- portString = trimmed.mid(firstDigitPos, spacePos - firstDigitPos);
- if (portString == "*")
+ const QStringList columns = QString::fromUtf8(line).split(' ', Qt::SkipEmptyParts);
+ if (columns.size() < 3)
+ return -1;
+
+ const QString firstColumn = columns.first();
+ QString columnToParse;
+ Base base = Base::Dec;
+
+ if (firstColumn.startsWith("TCP") || firstColumn.startsWith("UDP")) { // Windows
+ columnToParse = columns.at(1);
+ } else if (firstColumn.startsWith("tcp") || firstColumn.startsWith("udp")) { // Mac, Android, Qnx
+ if (columns.size() < 4)
return -1;
+ columnToParse = columns.at(3);
+ } else if (firstColumn.size() > 1 && firstColumn.at(1) == ':') { // Linux
+ columnToParse = columns.at(1);
+ base = Base::Hex;
} else {
- // Expected output on Linux something like
- //
- // sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt ...
- // 0: 00000000:2805 00000000:0000 0A 00000000:00000000 00:00000000 00000000 ...
- //
- const int firstColonPos = trimmed.indexOf(':');
- if (firstColonPos < 0)
- return -1;
- const int secondColonPos = trimmed.indexOf(':', firstColonPos + 1);
- if (secondColonPos < 0)
- return -1;
- const int spacePos = trimmed.indexOf(' ', secondColonPos + 1);
- if (spacePos < 0)
- return -1;
- const int len = spacePos - secondColonPos - 1;
- base = 16;
- portString = trimmed.mid(secondColonPos + 1, len);
+ return -1;
}
- bool ok = true;
- const int port = portString.toInt(&ok, base);
- if (!ok) {
+ const int port = trailingNumber(columnToParse, base);
+ if (port == -1) {
qWarning("%s: Unexpected string '%s' is not a port. Tried to read from '%s'",
- Q_FUNC_INFO, line.data(), portString.data());
- return -1;
+ Q_FUNC_INFO, line.data(), columnToParse.toUtf8().data());
}
return port;
}
diff --git a/src/plugins/axivion/axivionplugin.cpp b/src/plugins/axivion/axivionplugin.cpp
index d8f5044ad36..a683eda32a3 100644
--- a/src/plugins/axivion/axivionplugin.cpp
+++ b/src/plugins/axivion/axivionplugin.cpp
@@ -44,6 +44,7 @@
#include <QNetworkReply>
#include <QUrlQuery>
+#include <cmath>
#include <memory>
constexpr char s_axivionTextMarkId[] = "AxivionTextMark";
@@ -79,8 +80,14 @@ QString anyToSimpleString(const Dto::Any &any)
return any.getString();
if (any.isBool())
return QString("%1").arg(any.getBool());
- if (any.isDouble())
- return QString::number(any.getDouble());
+ if (any.isDouble()) {
+ const double value = any.getDouble();
+ double intPart;
+ const double fragPart = std::modf(value, &intPart);
+ if (fragPart != 0)
+ return QString::number(value);
+ return QString::number(value, 'f', 0);
+ }
if (any.isNull())
return QString(); // or NULL??
if (any.isList()) {
diff --git a/src/plugins/coreplugin/icore.cpp b/src/plugins/coreplugin/icore.cpp
index e511b2f4a52..617ece82771 100644
--- a/src/plugins/coreplugin/icore.cpp
+++ b/src/plugins/coreplugin/icore.cpp
@@ -827,6 +827,16 @@ QMainWindow *ICore::mainWindow()
/*!
Returns a widget pointer suitable to use as parent for QDialogs.
+
+ Especially for modal dialogs it is important to use the current modal
+ dialog as a parent (if there is one) for the new dialog, because
+ otherwise the new dialog can open behind the old one, while also
+ blocking interaction with that. Using dialogParent() ensures this.
+
+ Also use dialogParent() for non-modal dialogs that do not need any
+ specific lifetime management. If you need to control the lifetime of
+ a non-modal dialog (for example because another part of the
+ application depends on it), use a more specific parent instead.
*/
QWidget *ICore::dialogParent()
{
diff --git a/src/plugins/coreplugin/iversioncontrol.h b/src/plugins/coreplugin/iversioncontrol.h
index f04883446aa..6d32e8e1d8a 100644
--- a/src/plugins/coreplugin/iversioncontrol.h
+++ b/src/plugins/coreplugin/iversioncontrol.h
@@ -243,6 +243,7 @@ signals:
void repositoryChanged(const Utils::FilePath &repository);
void filesChanged(const QStringList &files);
void updateFileStatus(const Utils::FilePath &repository, const QStringList &files);
+ void clearFileStatus(const Utils::FilePath &repository);
void configurationChanged();
private:
diff --git a/src/plugins/coreplugin/outputwindow.cpp b/src/plugins/coreplugin/outputwindow.cpp
index 565e996c483..e6f9fad6712 100644
--- a/src/plugins/coreplugin/outputwindow.cpp
+++ b/src/plugins/coreplugin/outputwindow.cpp
@@ -23,6 +23,7 @@
#include <QCursor>
#include <QElapsedTimer>
#include <QHash>
+#include <QLoggingCategory>
#include <QMenu>
#include <QMimeData>
#include <QPair>
@@ -47,8 +48,9 @@ const int minChunkSize = 1000;
const auto defaultInterval = 10ms;
const auto maxInterval = 1000ms;
-namespace Core {
+static Q_LOGGING_CATEGORY(chunkLog, "qtc.core.outputChunking", QtWarningMsg)
+namespace Core {
namespace Internal {
class OutputWindowPrivate
@@ -515,11 +517,14 @@ void OutputWindow::handleNextOutputChunk()
}
}
+ qCDebug(chunkLog) << "next queued chunk has" << chunk.first.size() << "bytes";
if (actualChunkSize == chunk.first.size()) {
- handleOutputChunk(chunk.first, chunk.second);
+ qCDebug(chunkLog) << "chunk can be written in one go";
+ handleOutputChunk(chunk.first, chunk.second, ChunkCompleteness::Complete);
d->queuedOutput.removeFirst();
} else {
- handleOutputChunk(chunk.first.left(actualChunkSize), chunk.second);
+ qCDebug(chunkLog) << "chunk needs to be split";
+ handleOutputChunk(chunk.first.left(actualChunkSize), chunk.second, ChunkCompleteness::Split);
chunk.first.remove(0, actualChunkSize);
}
if (!d->queuedOutput.isEmpty())
@@ -530,7 +535,8 @@ void OutputWindow::handleNextOutputChunk()
}
}
-void OutputWindow::handleOutputChunk(const QString &output, OutputFormat format)
+void OutputWindow::handleOutputChunk(
+ const QString &output, OutputFormat format, ChunkCompleteness completeness)
{
QString out = output;
if (out.size() > d->maxCharCount) {
@@ -562,9 +568,18 @@ void OutputWindow::handleOutputChunk(const QString &output, OutputFormat format)
formatterTimer.start();
d->formatter.appendMessage(out, format);
++d->formatterCalls;
+ qCDebug(chunkLog) << "formatter took" << formatterTimer.elapsed() << "ms";
if (formatterTimer.elapsed() > d->queueTimer.interval()) {
d->queueTimer.setInterval(std::min(maxInterval, d->queueTimer.intervalAsDuration() * 2));
d->chunkSize = std::max(minChunkSize, d->chunkSize / 2);
+ qCDebug(chunkLog) << "increasing interval to" << d->queueTimer.interval()
+ << "ms and lowering chunk size to" << d->chunkSize << "bytes";
+ } else if (completeness == ChunkCompleteness::Split
+ && formatterTimer.elapsed() < d->queueTimer.interval() / 2) {
+ d->queueTimer.setInterval(std::max(1ms, d->queueTimer.intervalAsDuration() * 2 / 3));
+ d->chunkSize = d->chunkSize * 1.5;
+ qCDebug(chunkLog) << "lowering interval to" << d->queueTimer.interval()
+ << "ms and increasing chunk size to" << d->chunkSize << "bytes";
}
if (d->scrollToBottom) {
@@ -594,6 +609,8 @@ void OutputWindow::discardExcessiveOutput()
d->queuedSizeHistory.clear();
d->queuedSizeHistory << queuedSize;
bool discard = d->queuedSizeHistory.size() > int(10) && queuedSize > 5 * d->chunkSize;
+ if (discard)
+ qCDebug(chunkLog) << "discarding output due to size";
// Criterion 2: Are we too slow?
// If it would take longer than a minute to print the pending output and we have
@@ -601,6 +618,8 @@ void OutputWindow::discardExcessiveOutput()
if (!discard) {
discard = d->formatterCalls >= 10
&& (queuedSize / d->chunkSize) * d->queueTimer.intervalAsDuration() > 60s;
+ if (discard)
+ qCDebug(chunkLog) << "discarding output due to time";
}
if (discard) {
@@ -733,7 +752,7 @@ void OutputWindow::flush()
}
d->queueTimer.stop();
for (const auto &chunk : std::as_const(d->queuedOutput))
- handleOutputChunk(chunk.first, chunk.second);
+ handleOutputChunk(chunk.first, chunk.second, ChunkCompleteness::Complete);
d->queuedOutput.clear();
d->formatter.flush();
}
diff --git a/src/plugins/coreplugin/outputwindow.h b/src/plugins/coreplugin/outputwindow.h
index dc5bde19f8f..1ecd5abff74 100644
--- a/src/plugins/coreplugin/outputwindow.h
+++ b/src/plugins/coreplugin/outputwindow.h
@@ -98,7 +98,11 @@ private:
void enableUndoRedo();
void filterNewContent();
void handleNextOutputChunk();
- void handleOutputChunk(const QString &output, Utils::OutputFormat format);
+
+ enum class ChunkCompleteness { Complete, Split };
+ void handleOutputChunk(
+ const QString &output, Utils::OutputFormat format, ChunkCompleteness completeness);
+
void discardExcessiveOutput();
void discardPendingToolOutput();
void updateAutoScroll();
diff --git a/src/plugins/coreplugin/secretaspect.cpp b/src/plugins/coreplugin/secretaspect.cpp
index 3017f6458bb..4e70380affd 100644
--- a/src/plugins/coreplugin/secretaspect.cpp
+++ b/src/plugins/coreplugin/secretaspect.cpp
@@ -76,8 +76,9 @@ void SecretAspect::readSecret(const std::function<void(Utils::expected_str<QStri
qWarning() << "No Keychain available, reading from plaintext";
qtcSettings()->beginGroup("Secrets");
auto value = qtcSettings()->value(settingsKey());
- d->callReadCallbacks(fromSettingsValue(value).toString());
qtcSettings()->endGroup();
+
+ d->callReadCallbacks(fromSettingsValue(value).toString());
return;
}
@@ -126,7 +127,7 @@ void SecretAspect::writeSettings() const
if (!QKeychain::isAvailable()) {
qtcSettings()->beginGroup("Secrets");
- qtcSettings()->setValue(settingsKey(), toSettingsValue(variantValue()));
+ qtcSettings()->setValue(settingsKey(), toSettingsValue(d->value));
qtcSettings()->endGroup();
d->wasEdited = false;
return;
@@ -198,8 +199,7 @@ void SecretAspect::addToLayoutImpl(Layouting::Layout &parent)
}));
connect(showPasswordButton, &ShowPasswordButton::toggled, edit, [showPasswordButton, edit] {
- edit->setEchoMode(
- showPasswordButton->isChecked() ? QLineEdit::Normal : QLineEdit::PasswordEchoOnEdit);
+ edit->setEchoMode(showPasswordButton->isChecked() ? QLineEdit::Normal : QLineEdit::Password);
});
connect(edit, &FancyLineEdit::textChanged, this, [this](const QString &text) {
diff --git a/src/plugins/cppeditor/cppfollowsymbolundercursor.cpp b/src/plugins/cppeditor/cppfollowsymbolundercursor.cpp
index f61f0276410..9aa99a8c479 100644
--- a/src/plugins/cppeditor/cppfollowsymbolundercursor.cpp
+++ b/src/plugins/cppeditor/cppfollowsymbolundercursor.cpp
@@ -333,7 +333,7 @@ Link attemptDeclDef(const QTextCursor &cursor, Snapshot snapshot,
if (decl->postfix_declarator_list && decl->postfix_declarator_list->value)
funcDecl = decl->postfix_declarator_list->value->asFunctionDeclarator();
if (funcDecl)
- target = symbolFinder->findMatchingDefinition(funcDecl->symbol, snapshot);
+ target = symbolFinder->findMatchingDefinition(funcDecl->symbol, snapshot, false);
else if (simpleDecl->symbols)
target = symbolFinder->findMatchingVarDefinition(simpleDecl->symbols->value, snapshot);
}
@@ -365,7 +365,7 @@ Symbol *findDefinition(Symbol *symbol, const Snapshot &snapshot, SymbolFinder *s
if (!symbol->type()->asFunctionType())
return nullptr; // not a function declaration
- return symbolFinder->findMatchingDefinition(symbol, snapshot);
+ return symbolFinder->findMatchingDefinition(symbol, snapshot, false);
}
bool maybeAppendArgumentOrParameterList(QString *expression, const QTextCursor &textCursor)
@@ -816,7 +816,8 @@ void FollowSymbolUnderCursor::switchDeclDef(
// Link to function definition/declaration
Utils::Link symbolLink;
if (functionDeclarationSymbol) {
- Symbol *symbol = symbolFinder->findMatchingDefinition(functionDeclarationSymbol, snapshot);
+ Symbol *symbol
+ = symbolFinder->findMatchingDefinition(functionDeclarationSymbol, snapshot, false);
if (symbol)
symbolLink = symbol->toLink();
} else if (declarationSymbol) {
diff --git a/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp b/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp
index 7ae02294588..7575b00caf2 100644
--- a/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp
+++ b/src/plugins/cppeditor/cppvirtualfunctionassistprovider.cpp
@@ -131,7 +131,7 @@ public:
private:
Function *maybeDefinitionFor(Function *func) const
{
- if (Function *definition = m_finder.findMatchingDefinition(func, m_params.snapshot))
+ if (Function *definition = m_finder.findMatchingDefinition(func, m_params.snapshot, true))
return definition;
return func;
}
diff --git a/src/plugins/cppeditor/insertionpointlocator.cpp b/src/plugins/cppeditor/insertionpointlocator.cpp
index e957ae77bf9..b0d2414f44b 100644
--- a/src/plugins/cppeditor/insertionpointlocator.cpp
+++ b/src/plugins/cppeditor/insertionpointlocator.cpp
@@ -562,7 +562,7 @@ static InsertionLocation nextToSurroundingDefinitions(Symbol *declaration,
if (s->isGenerated() || !(surroundingFunctionDecl = isNonVirtualFunctionDeclaration(s)))
continue;
if ((definitionFunction = symbolFinder.findMatchingDefinition(surroundingFunctionDecl,
- changes.snapshot())))
+ changes.snapshot(), true)))
{
if (destinationFile.isEmpty() || destinationFile == definitionFunction->filePath()) {
prefix = QLatin1String("\n\n");
@@ -578,9 +578,8 @@ static InsertionLocation nextToSurroundingDefinitions(Symbol *declaration,
surroundingFunctionDecl = isNonVirtualFunctionDeclaration(s);
if (!surroundingFunctionDecl)
continue;
- if ((definitionFunction = symbolFinder.findMatchingDefinition(surroundingFunctionDecl,
- changes.snapshot())))
- {
+ if ((definitionFunction = symbolFinder.findMatchingDefinition(
+ surroundingFunctionDecl, changes.snapshot(), true))) {
if (destinationFile.isEmpty() || destinationFile == definitionFunction->filePath()) {
suffix = QLatin1String("\n\n");
break;
diff --git a/src/plugins/cppeditor/quickfixes/insertfunctiondefinition.cpp b/src/plugins/cppeditor/quickfixes/insertfunctiondefinition.cpp
index aa475c4f124..0f9f8461380 100644
--- a/src/plugins/cppeditor/quickfixes/insertfunctiondefinition.cpp
+++ b/src/plugins/cppeditor/quickfixes/insertfunctiondefinition.cpp
@@ -345,7 +345,7 @@ private:
QList<Symbol *> unimplemented;
SymbolFinder symbolFinder;
for (Symbol * const s : std::as_const(m_declarations)) {
- if (!symbolFinder.findMatchingDefinition(s, snapshot()))
+ if (!symbolFinder.findMatchingDefinition(s, snapshot(), true))
unimplemented << s;
}
if (unimplemented.isEmpty())
diff --git a/src/plugins/cppeditor/quickfixes/movefunctiondefinition.cpp b/src/plugins/cppeditor/quickfixes/movefunctiondefinition.cpp
index 6b982decc78..2d7dd65a2bc 100644
--- a/src/plugins/cppeditor/quickfixes/movefunctiondefinition.cpp
+++ b/src/plugins/cppeditor/quickfixes/movefunctiondefinition.cpp
@@ -1384,6 +1384,23 @@ auto Derived::func() const && noexcept -> void {}
QuickFixOperationTest(testDocuments, &factory);
}
+ void testUnimplementedOverload()
+ {
+ const QByteArray original =
+ "struct S {\n"
+ " S();\n"
+ " @S(const S &) {}\n"
+ "};\n";
+ const QByteArray expected =
+ "struct S {\n"
+ " S();\n"
+ " S(const S &);\n"
+ "};\n\n"
+ "S::S(const S &) {}\n";
+
+ MoveFuncDefOutside factory;
+ QuickFixOperationTest(singleDocument(original, expected), &factory);
+ }
};
class MoveAllFuncDefOutsideTest : public QObject
diff --git a/src/plugins/cppeditor/symbolfinder.h b/src/plugins/cppeditor/symbolfinder.h
index 10591b38d4f..37481a08158 100644
--- a/src/plugins/cppeditor/symbolfinder.h
+++ b/src/plugins/cppeditor/symbolfinder.h
@@ -13,8 +13,6 @@
#include <QSet>
#include <QStringList>
-#include <set>
-
namespace CPlusPlus {
class Class;
class Declaration;
@@ -33,7 +31,7 @@ public:
CPlusPlus::Function *findMatchingDefinition(CPlusPlus::Symbol *symbol,
const CPlusPlus::Snapshot &snapshot,
- bool strict = false);
+ bool strict);
QList<CPlusPlus::Function *> findMatchingDefinitions(
CPlusPlus::Symbol *declaration, const CPlusPlus::Snapshot &snapshot, bool strict,
diff --git a/src/plugins/extensionmanager/extensionmanagerwidget.cpp b/src/plugins/extensionmanager/extensionmanagerwidget.cpp
index 0c367adc5ea..a6a284d80fd 100644
--- a/src/plugins/extensionmanager/extensionmanagerwidget.cpp
+++ b/src/plugins/extensionmanager/extensionmanagerwidget.cpp
@@ -32,7 +32,9 @@
#include <utils/infolabel.h>
#include <utils/layoutbuilder.h>
#include <utils/markdownbrowser.h>
+#include <utils/mimeutils.h>
#include <utils/networkaccessmanager.h>
+#include <utils/stringutils.h>
#include <utils/styledbar.h>
#include <utils/stylehelper.h>
#include <utils/temporarydirectory.h>
@@ -243,6 +245,17 @@ private:
const char kRestartSetting[] = "RestartAfterPluginEnabledChanged";
+// Copy paste from Core::Internal::CorePlugin::loadMimeFromPlugin
+// TODO make code usable by other plugins.
+static void loadMimeFromPlugin(const ExtensionSystem::PluginSpec *plugin)
+{
+ const QJsonObject metaData = plugin->metaData();
+ const QJsonValue mimetypes = metaData.value("Mimetypes");
+ QString mimetypeString;
+ if (Utils::readMultiLineString(mimetypes, &mimetypeString))
+ Utils::addMimeTypes(plugin->name() + ".mimetypes", mimetypeString.trimmed().toUtf8());
+}
+
class PluginStatusWidget : public QWidget
{
public:
@@ -266,17 +279,19 @@ public:
return;
const bool doIt = m_pluginView.data().setPluginsEnabled({spec}, checked);
if (doIt) {
- if (!ICore::infoBar()->canInfoBeAdded(kRestartSetting))
- return;
-
- Utils::InfoBarEntry info(
- kRestartSetting,
- Core::Tr::tr("Plugin changes will take effect after restart."));
- info.addCustomButton(Tr::tr("Restart Now"), [] {
- ICore::infoBar()->removeInfo(kRestartSetting);
- QTimer::singleShot(0, ICore::instance(), &ICore::restart);
- });
- ICore::infoBar()->addInfo(info);
+ if (checked && spec->isEffectivelySoftloadable()) {
+ ExtensionSystem::PluginManager::loadPluginsAtRuntime({spec});
+ loadMimeFromPlugin(spec);
+ } else if (ICore::infoBar()->canInfoBeAdded(kRestartSetting)) {
+ Utils::InfoBarEntry info(
+ kRestartSetting,
+ Core::Tr::tr("Plugin changes will take effect after restart."));
+ info.addCustomButton(Tr::tr("Restart Now"), [] {
+ ICore::infoBar()->removeInfo(kRestartSetting);
+ QTimer::singleShot(0, ICore::instance(), &ICore::restart);
+ });
+ ICore::infoBar()->addInfo(info);
+ }
ExtensionSystem::PluginManager::writeSettings();
} else {
diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp
index 0b35a79e310..f80ed6bd858 100644
--- a/src/plugins/git/gitclient.cpp
+++ b/src/plugins/git/gitclient.cpp
@@ -38,6 +38,7 @@
#include <utils/temporaryfile.h>
#include <utils/theme/theme.h>
+#include <vcsbase/commonvcssettings.h>
#include <vcsbase/submitfilemodel.h>
#include <vcsbase/vcsbasediffeditorcontroller.h>
#include <vcsbase/vcsbaseeditor.h>
@@ -805,15 +806,27 @@ GitClient &gitClient()
GitClient::GitClient()
: VcsBase::VcsBaseClientImpl(&Internal::settings())
- , m_timer(new QTimer)
{
m_gitQtcEditor = QString::fromLatin1("\"%1\" -client -block -pid %2")
.arg(QCoreApplication::applicationFilePath())
.arg(QCoreApplication::applicationPid());
- connect(m_timer.get(), &QTimer::timeout, this, &GitClient::updateModificationInfos);
- using namespace std::chrono_literals;
- m_timer->setInterval(10s);
+ if (VcsBase::Internal::commonSettings().vcsShowStatus())
+ setupTimer();
+ connect(&VcsBase::Internal::commonSettings().vcsShowStatus, &Utils::BaseAspect::changed,
+ [this] {
+ bool enable = VcsBase::Internal::commonSettings().vcsShowStatus();
+ QTC_CHECK(enable == bool(!m_timer));
+ if (enable) {
+ setupTimer();
+ } else {
+ m_timer.reset();
+ for (auto fp : std::as_const(m_modifInfos)) {
+ m_modifInfos[fp.rootPath].modifiedFiles.clear();
+ emitClearFileStatus(fp.rootPath);
+ }
+ }
+ });
}
GitClient::~GitClient() = default;
@@ -904,7 +917,7 @@ void GitClient::stopMonitoring(const Utils::FilePath &path)
for (const FilePath &subModule : subPaths)
m_modifInfos.remove(subModule);
m_modifInfos.remove(directory);
- if (m_modifInfos.isEmpty())
+ if (m_modifInfos.isEmpty() && m_timer)
m_timer->stop();
}
@@ -918,8 +931,10 @@ void GitClient::monitorDirectory(const Utils::FilePath &path)
const QList<FilePath> subPaths = submoduleDataToAbsolutePath(submoduleList(directory), directory);
for (const FilePath &subModule : subPaths)
m_modifInfos.insert(subModule, {subModule, {}});
- if (!m_timer->isActive())
- m_timer->start();
+
+ if (!m_timer)
+ return;
+
updateModificationInfos();
}
@@ -971,7 +986,8 @@ void GitClient::updateModificationInfos()
emitFileStatusChanged(info.rootPath, statusChangedFiles);
};
- vcsExecWithHandler(path, {"status", "-s", "--porcelain"}, this, command, RunFlags::NoOutput);
+ vcsExecWithHandler(path, {"status", "-s", "--porcelain", "--ignore-submodules"},
+ this, command, RunFlags::NoOutput);
}
}
@@ -3894,6 +3910,16 @@ ColorNames GitClient::colorNames()
return result;
}
+void GitClient::setupTimer()
+{
+ QTC_ASSERT(!m_timer, return);
+ m_timer.reset(new QTimer);
+ connect(m_timer.get(), &QTimer::timeout, this, &GitClient::updateModificationInfos);
+ using namespace std::chrono_literals;
+ m_timer->setInterval(10s);
+ m_timer->start();
+}
+
} // Git::Internal
#include "gitclient.moc"
diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h
index 1429469ca79..ca2ed56d78d 100644
--- a/src/plugins/git/gitclient.h
+++ b/src/plugins/git/gitclient.h
@@ -406,6 +406,7 @@ private:
QString msgBoxText, const QString &buttonName,
const QString &gitCommand, ContinueCommandMode continueMode);
+ void setupTimer();
mutable Utils::FilePath m_gitVersionForBinary;
mutable QVersionNumber m_cachedGitVersion;
mutable QMap<Utils::FilePath, Utils::FilePath> m_gitExecutableCache;
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index 38b3b344710..fc0d69bef60 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -1909,6 +1909,11 @@ void emitFileStatusChanged(const FilePath &repository, const QStringList &files)
emit dd->updateFileStatus(repository, files);
}
+void emitClearFileStatus(const FilePath &repository)
+{
+ emit dd->clearFileStatus(repository);
+}
+
void startRebaseFromCommit(const FilePath &workingDirectory, const QString &commit)
{
dd->startRebaseFromCommit(workingDirectory, commit);
diff --git a/src/plugins/git/gitplugin.h b/src/plugins/git/gitplugin.h
index a6658fbf8d4..705807bbacc 100644
--- a/src/plugins/git/gitplugin.h
+++ b/src/plugins/git/gitplugin.h
@@ -23,6 +23,7 @@ bool isCommitEditorOpen();
void emitFilesChanged(const QStringList &);
void emitRepositoryChanged(const Utils::FilePath &);
void emitFileStatusChanged(const Utils::FilePath &repository, const QStringList &files);
+void emitClearFileStatus(const Utils::FilePath &repository);
void startRebaseFromCommit(const Utils::FilePath &workingDirectory, const QString &commit);
void manageRemotes();
void initRepository();
diff --git a/src/plugins/lua/bindings/texteditor.cpp b/src/plugins/lua/bindings/texteditor.cpp
index 2fc4e3b0e88..0ca9a7f4e93 100644
--- a/src/plugins/lua/bindings/texteditor.cpp
+++ b/src/plugins/lua/bindings/texteditor.cpp
@@ -52,6 +52,12 @@ TextEditor::TextEditorWidget *getSuggestionReadyEditorWidget(TextEditor::TextDoc
std::unique_ptr<EmbeddedWidgetInterface> addEmbeddedWidget(
BaseTextEditor *editor, QWidget *widget, std::variant<int, Position> cursorPosition)
{
+ if (!widget)
+ throw sol::error("No widget provided");
+
+ if (!editor)
+ throw sol::error("No editor provided");
+
if (!editor->textDocument() || !editor->textDocument()->document())
throw sol::error("No text document set");
diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp
index cecd14b9c3a..73c7dac7588 100644
--- a/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp
+++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.cpp
@@ -144,6 +144,11 @@ QIcon KitManagerConfigWidget::displayIcon() const
return m_modifiedKit->displayIcon();
}
+void KitManagerConfigWidget::clearCachedDisplayName()
+{
+ m_cachedDisplayName.clear();
+}
+
void KitManagerConfigWidget::setFocusToName()
{
m_nameEdit->selectAll();
diff --git a/src/plugins/projectexplorer/kitmanagerconfigwidget.h b/src/plugins/projectexplorer/kitmanagerconfigwidget.h
index d23ab59cb70..a2aaec581b8 100644
--- a/src/plugins/projectexplorer/kitmanagerconfigwidget.h
+++ b/src/plugins/projectexplorer/kitmanagerconfigwidget.h
@@ -32,6 +32,7 @@ public:
QString displayName() const;
QIcon displayIcon() const;
+ void clearCachedDisplayName(); // FIXME: Remove cached name?
void setFocusToName();
void apply();
diff --git a/src/plugins/projectexplorer/kitoptionspage.cpp b/src/plugins/projectexplorer/kitoptionspage.cpp
index 2cdc1451757..37a74517246 100644
--- a/src/plugins/projectexplorer/kitoptionspage.cpp
+++ b/src/plugins/projectexplorer/kitoptionspage.cpp
@@ -143,6 +143,7 @@ public:
void setHasUniqueName(bool on)
{
m_hasUniqueName = on;
+ update();
}
void ensureWidget();
@@ -354,6 +355,7 @@ Kit *KitModel::markForAddition(Kit *baseKit)
} else {
k->setup();
}
+ node->widget()->clearCachedDisplayName();
k->setUnexpandedDisplayName(newName);
if (!m_defaultNode)
diff --git a/src/plugins/projectexplorer/projectmodels.cpp b/src/plugins/projectexplorer/projectmodels.cpp
index 833643197de..ace041c9e75 100644
--- a/src/plugins/projectexplorer/projectmodels.cpp
+++ b/src/plugins/projectexplorer/projectmodels.cpp
@@ -463,6 +463,7 @@ void FlatModel::handleProjectAdded(Project *project)
if (vc) {
vc->monitorDirectory(rootPath);
connect(vc, &IVersionControl::updateFileStatus, this, &FlatModel::updateVCStatusFor);
+ connect(vc, &IVersionControl::clearFileStatus, this, &FlatModel::clearVCStatusFor);
}
addOrRebuildProjectModel(project);
@@ -485,6 +486,20 @@ void FlatModel::updateVCStatusFor(const Utils::FilePath root, const QStringList
});
}
+void FlatModel::clearVCStatusFor(const Utils::FilePath &root)
+{
+ ProjectTree::forEachNode([this, root](Node *n) {
+ FileNode *fileNode = n->asFileNode();
+ if (!fileNode)
+ return;
+ if (fileNode->filePath().isChildOf(root)) {
+ fileNode->resetModificationState();
+ const QModelIndex index = indexForNode(fileNode);
+ emit dataChanged(index, index, {Qt::ForegroundRole});
+ }
+ });
+}
+
void FlatModel::handleProjectRemoved(Project *project)
{
destroyItem(nodeForProject(project));
diff --git a/src/plugins/projectexplorer/projectmodels.h b/src/plugins/projectexplorer/projectmodels.h
index a07279388a4..8cee63309bc 100644
--- a/src/plugins/projectexplorer/projectmodels.h
+++ b/src/plugins/projectexplorer/projectmodels.h
@@ -86,6 +86,7 @@ private:
void addFolderNode(WrapperNode *parent, FolderNode *folderNode, QSet<Node *> *seen);
bool trimEmptyDirectories(WrapperNode *parent);
void updateVCStatusFor(const Utils::FilePath root, const QStringList &files);
+ void clearVCStatusFor(const Utils::FilePath &root);
ExpandData expandDataForNode(const Node *node) const;
void loadExpandData();
diff --git a/src/plugins/projectexplorer/toolchainoptionspage.cpp b/src/plugins/projectexplorer/toolchainoptionspage.cpp
index 8fe63773ecc..c3f09d1fecd 100644
--- a/src/plugins/projectexplorer/toolchainoptionspage.cpp
+++ b/src/plugins/projectexplorer/toolchainoptionspage.cpp
@@ -101,6 +101,8 @@ public:
ToolchainTreeItem(bundle), changed(c), m_parentWidget(parentWidget)
{}
+ ~ExtendedToolchainTreeItem() override { delete m_widget; }
+
QVariant data(int column, int role) const override
{
switch (role) {
diff --git a/src/plugins/python/pythoneditor.cpp b/src/plugins/python/pythoneditor.cpp
index 64ad03052d7..5854b92d3de 100644
--- a/src/plugins/python/pythoneditor.cpp
+++ b/src/plugins/python/pythoneditor.cpp
@@ -297,7 +297,8 @@ PythonDocument::PythonDocument()
void PythonDocument::updateCurrentPython()
{
- updatePython(detectPython(filePath()));
+ if (Core::DocumentModel::entryForDocument(this))
+ updatePython(detectPython(filePath()));
}
void PythonDocument::updatePython(const FilePath &python)
diff --git a/src/plugins/python/pythonlanguageclient.cpp b/src/plugins/python/pythonlanguageclient.cpp
index 3c05b8f87ed..bbfb5c75474 100644
--- a/src/plugins/python/pythonlanguageclient.cpp
+++ b/src/plugins/python/pythonlanguageclient.cpp
@@ -334,8 +334,10 @@ void PyLSConfigureAssistant::installPythonLanguageServer(const FilePath &python,
void PyLSConfigureAssistant::openDocument(const FilePath &python, TextEditor::TextDocument *document)
{
resetEditorInfoBar(document);
- if (!PythonSettings::pylsEnabled() || !python.exists())
+ if (!PythonSettings::pylsEnabled() || !python.exists()
+ || !Core::DocumentModel::entryForDocument(document)) {
return;
+ }
if (auto client = pythonClients().value(python)) {
LanguageClientManager::openDocumentWithClient(document, client);
diff --git a/src/plugins/qmlprofiler/quick3dframeview.cpp b/src/plugins/qmlprofiler/quick3dframeview.cpp
index 3d0141d0ed9..64f51c9970f 100644
--- a/src/plugins/qmlprofiler/quick3dframeview.cpp
+++ b/src/plugins/qmlprofiler/quick3dframeview.cpp
@@ -54,13 +54,13 @@ Quick3DFrameView::Quick3DFrameView(QmlProfilerModelManager *profilerModelManager
connect(m_compareFrameView.get(), &Quick3DMainView::gotoSourceLocation,
this, &Quick3DFrameView::gotoSourceLocation);
- auto groupLayout = new QVBoxLayout(this);
+ auto groupLayout = new QVBoxLayout;
groupLayout->setContentsMargins(0,0,0,0);
groupLayout->setSpacing(0);
- auto hMainLayout = new QHBoxLayout(this);
+ auto hMainLayout = new QHBoxLayout;
hMainLayout->setContentsMargins(0,0,0,0);
hMainLayout->setSpacing(0);
- auto hFrameLayout = new QHBoxLayout(this);
+ auto hFrameLayout = new QHBoxLayout;
hFrameLayout->setContentsMargins(0,0,0,0);
hFrameLayout->setSpacing(0);
auto view3DComboBox = new QComboBox(this);
diff --git a/src/plugins/remotelinux/filesystemaccess_test.cpp b/src/plugins/remotelinux/filesystemaccess_test.cpp
index f5f1fe091f1..4a411c1f456 100644
--- a/src/plugins/remotelinux/filesystemaccess_test.cpp
+++ b/src/plugins/remotelinux/filesystemaccess_test.cpp
@@ -129,6 +129,27 @@ void FileSystemAccessTest::initTestCase()
QVERIFY(m_localRemoteDestDir.exists());
QVERIFY(m_remoteLocalDestDir.exists());
QVERIFY(m_remoteRemoteDestDir.exists());
+
+ const FilePath localPath = localTempDir / "sourceChildDir" / "grandchildDir";
+ const FilePath remotePath = remoteTempDir / "destChildDir" / "grandchildDir";
+ if (localPath.exists())
+ localPath.parentDir().removeRecursively();
+ if (remotePath.exists())
+ remotePath.parentDir().removeRecursively();
+ QVERIFY(!localPath.exists());
+ QVERIFY(!remotePath.exists());
+ QVERIFY(!localPath.parentDir().exists());
+ QVERIFY(!remotePath.parentDir().exists());
+ QVERIFY(localPath.ensureWritableDir());
+ QVERIFY(remotePath.ensureWritableDir());
+ QVERIFY(localPath.exists());
+ QVERIFY(remotePath.exists());
+ QVERIFY(localPath.parentDir().removeRecursively());
+ QVERIFY(remotePath.parentDir().removeRecursively());
+ QVERIFY(!localPath.exists());
+ QVERIFY(!remotePath.exists());
+ QVERIFY(!localPath.parentDir().exists());
+ QVERIFY(!remotePath.parentDir().exists());
}
void FileSystemAccessTest::cleanupTestCase()
diff --git a/src/plugins/texteditor/codeassist/codeassistant.cpp b/src/plugins/texteditor/codeassist/codeassistant.cpp
index 1cab9f82924..83eb9c7d13d 100644
--- a/src/plugins/texteditor/codeassist/codeassistant.cpp
+++ b/src/plugins/texteditor/codeassist/codeassistant.cpp
@@ -367,9 +367,14 @@ QString CodeAssistantPrivate::proposalPrefix() const
void CodeAssistantPrivate::invalidateCurrentRequestData()
{
m_processor = nullptr;
- disconnect(
- m_requestProvider, &QObject::destroyed, this, &CodeAssistantPrivate::cancelCurrentRequest);
- m_requestProvider = nullptr;
+ if (m_requestProvider) {
+ disconnect(
+ m_requestProvider,
+ &QObject::destroyed,
+ this,
+ &CodeAssistantPrivate::cancelCurrentRequest);
+ m_requestProvider = nullptr;
+ }
m_receivedContentWhileWaiting = false;
}
diff --git a/src/plugins/vcsbase/commonvcssettings.cpp b/src/plugins/vcsbase/commonvcssettings.cpp
index 5f009487108..f546ae4154b 100644
--- a/src/plugins/vcsbase/commonvcssettings.cpp
+++ b/src/plugins/vcsbase/commonvcssettings.cpp
@@ -80,9 +80,16 @@ CommonVcsSettings::CommonVcsSettings()
lineWrapWidth.setSuffix(Tr::tr(" characters"));
lineWrapWidth.setDefaultValue(72);
+ vcsShowStatus.setSettingsKey("ShowVcsStatus");
+ vcsShowStatus.setDefaultValue(false);
+ vcsShowStatus.setLabelText(Tr::tr("Show VCS file status"));
+ vcsShowStatus.setToolTip(Tr::tr("Request file status updates from files and reflect them "
+ "on the project tree."));
+
setLayouter([this] {
using namespace Layouting;
return Column {
+ vcsShowStatus, br,
Row { lineWrap, lineWrapWidth, st },
Form {
submitMessageCheckScript, br,
diff --git a/src/plugins/vcsbase/commonvcssettings.h b/src/plugins/vcsbase/commonvcssettings.h
index ced68d31b97..da962bca643 100644
--- a/src/plugins/vcsbase/commonvcssettings.h
+++ b/src/plugins/vcsbase/commonvcssettings.h
@@ -3,11 +3,13 @@
#pragma once
+#include "vcsbase_global.h"
+
#include <utils/aspects.h>
namespace VcsBase::Internal {
-class CommonVcsSettings final : public Utils::AspectContainer
+class VCSBASE_EXPORT CommonVcsSettings final : public Utils::AspectContainer
{
public:
CommonVcsSettings();
@@ -22,8 +24,9 @@ public:
Utils::BoolAspect lineWrap{this};
Utils::IntegerAspect lineWrapWidth{this};
+ Utils::BoolAspect vcsShowStatus{this};
};
-CommonVcsSettings &commonSettings();
+VCSBASE_EXPORT CommonVcsSettings &commonSettings();
} // VcsBase::Internal
diff --git a/src/shared/qbs b/src/shared/qbs
-Subproject 862deed5ec60c36c603d5ac84546804ea67cc67
+Subproject e44a761b3b2081bb3ac4ee320d868310bd37312
diff --git a/tests/auto/utils/expander/tst_expander.cpp b/tests/auto/utils/expander/tst_expander.cpp
index eb886e25ec7..05c70d21fe4 100644
--- a/tests/auto/utils/expander/tst_expander.cpp
+++ b/tests/auto/utils/expander/tst_expander.cpp
@@ -97,6 +97,9 @@ private slots:
QTest::newRow("email") << QString("My email is: %{Email}")
<< QString("My email is: [email protected]") << user;
+
+ QTest::newRow("default-expansion") << QString("My name is: %{VarDoesNotExist:-Johanna}")
+ << QString("My name is: Johanna") << empty;
}
void expandString()
diff --git a/tests/auto/utils/stringutils/tst_stringutils.cpp b/tests/auto/utils/stringutils/tst_stringutils.cpp
index 4cfa1c7f35a..78a75611366 100644
--- a/tests/auto/utils/stringutils/tst_stringutils.cpp
+++ b/tests/auto/utils/stringutils/tst_stringutils.cpp
@@ -128,6 +128,18 @@ void tst_StringUtils::testParseUsedPortFromNetstatOutput_data()
QTest::newRow("Qnx8") << "Active Internet6 connections (including servers)" << -1;
QTest::newRow("Qnx9") << "Proto Recv-Q Send-Q Local Address Foreign Address (state) " << -1;
QTest::newRow("QnxA") << "tcp6 0 0 *.22 *.* LISTEN " << 22;
+
+ // Android
+ QTest::newRow("Android1") << "tcp 0 0 10.0.2.16:49088 142.250.180.74:443 ESTABLISHED" << 49088;
+ QTest::newRow("Android2") << "tcp 0 0 10.0.2.16:48380 142.250.186.196:443 CLOSE_WAIT" << 48380;
+ QTest::newRow("Android3") << "tcp6 0 0 [::]:5555 [::]:* LISTEN" << 5555;
+ QTest::newRow("Android4") << "tcp6 0 0 ::ffff:127.0.0.1:39417 [::]:* LISTEN" << 39417;
+ QTest::newRow("Android5") << "tcp6 0 0 ::ffff:10.0.2.16:35046 ::ffff:142.250.203.:443 ESTABLISHED" << 35046;
+ QTest::newRow("Android6") << "tcp6 0 0 ::ffff:127.0.0.1:46265 ::ffff:127.0.0.1:33155 TIME_WAIT" << 46265;
+ QTest::newRow("Android7") << "udp 0 0 10.0.2.16:50950 142.250.75.14:443 ESTABLISHED" << 50950;
+ QTest::newRow("Android8") << "udp 2560 0 10.0.2.16:68 10.0.2.2:67 ESTABLISHED" << 68;
+ QTest::newRow("Android9") << "udp 0 0 0.0.0.0:5353 0.0.0.0:*" << 5353;
+ QTest::newRow("Android10") << "udp6 0 0 [::]:36662 [::]:*" << 36662;
}
void tst_StringUtils::testParseUsedPortFromNetstatOutput()
diff --git a/tests/system/suite_editors/tst_delete_externally/test.py b/tests/system/suite_editors/tst_delete_externally/test.py
index 31583877c74..c40ca5fa126 100644
--- a/tests/system/suite_editors/tst_delete_externally/test.py
+++ b/tests/system/suite_editors/tst_delete_externally/test.py
@@ -25,7 +25,14 @@ def main():
editorRealName = objectMap.realName(editor)
contentBefore = readFile(currentFile)
- os.remove(currentFile)
+ try:
+ os.remove(currentFile)
+ except PermissionError:
+ v = sys.exc_info()[1]
+ test.log("PermissionError: %s" % str(v), "Trying once more in 2s")
+ snooze(2)
+ os.remove(currentFile)
+
if not currentFile.endswith(".bin"):
popupText = ("The file %s has been removed from disk. Do you want to "
"save it under a different name, or close the editor?")