Merge remote-tracking branch 'origin/10.0'

Conflicts:
	src/plugins/python/pipsupport.cpp
	src/plugins/qtsupport/exampleslistmodel.cpp
	src/plugins/qtsupport/examplesparser.cpp
	tests/auto/examples/tst_examples.cpp

Change-Id: I00273622423fa99d41621969f6ecbbdaa0e18664
This commit is contained in:
Eike Ziller
2023-04-13 15:59:08 +02:00
97 changed files with 550 additions and 328 deletions

View File

@@ -7,9 +7,9 @@ on:
- 'doc/**' - 'doc/**'
env: env:
QT_VERSION: 6.4.2 QT_VERSION: 6.4.3
MACOS_DEPLOYMENT_TARGET: 10.14 MACOS_DEPLOYMENT_TARGET: 10.14
CLANG_VERSION: 16.0.0-rc2 CLANG_VERSION: 16.0.0
ELFUTILS_VERSION: 0.175 ELFUTILS_VERSION: 0.175
CMAKE_VERSION: 3.21.1 CMAKE_VERSION: 3.21.1
NINJA_VERSION: 1.10.2 NINJA_VERSION: 1.10.2
@@ -189,11 +189,11 @@ jobs:
if ("x${{ matrix.config.environment_script }}" STREQUAL "x") if ("x${{ matrix.config.environment_script }}" STREQUAL "x")
set(qt_package_arch_suffix "win64_mingw") set(qt_package_arch_suffix "win64_mingw")
set(qt_dir_prefix "${qt_version}/mingw_64") set(qt_dir_prefix "${qt_version}/mingw_64")
set(qt_package_suffix "-Windows-Windows_10_21H2-Mingw-Windows-Windows_10_21H2-X86_64") set(qt_package_suffix "-Windows-Windows_10_22H2-Mingw-Windows-Windows_10_22H2-X86_64")
elseif ("${{ matrix.config.environment_script }}" MATCHES "vcvars64.bat") elseif ("${{ matrix.config.environment_script }}" MATCHES "vcvars64.bat")
set(qt_package_arch_suffix "win64_msvc2019_64") set(qt_package_arch_suffix "win64_msvc2019_64")
set(qt_dir_prefix "${qt_version}/msvc2019_64") set(qt_dir_prefix "${qt_version}/msvc2019_64")
set(qt_package_suffix "-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64") set(qt_package_suffix "-Windows-Windows_10_22H2-MSVC2019-Windows-Windows_10_22H2-X86_64")
endif() endif()
elseif ("${{ runner.os }}" STREQUAL "Linux") elseif ("${{ runner.os }}" STREQUAL "Linux")
set(url_os "linux_x64") set(url_os "linux_x64")

View File

@@ -58,7 +58,7 @@ function(_create_ts_custom_target name)
set(_arg_TS_TARGET_PREFIX "ts_") set(_arg_TS_TARGET_PREFIX "ts_")
endif() endif()
set(ts_file "${CMAKE_CURRENT_SOURCE_DIR}/${_arg_FILE_PREFIX}_${l}.ts") set(ts_file "${CMAKE_CURRENT_SOURCE_DIR}/${_arg_FILE_PREFIX}_${name}.ts")
set(_sources "${_arg_SOURCES}") set(_sources "${_arg_SOURCES}")
list(SORT _sources) list(SORT _sources)

View File

@@ -7,10 +7,10 @@ instructions:
variableValue: "RelWithDebInfo" variableValue: "RelWithDebInfo"
- type: EnvironmentVariable - type: EnvironmentVariable
variableName: LLVM_BASE_URL variableName: LLVM_BASE_URL
variableValue: http://master.qt.io/development_releases/prebuilt/libclang/libclang-release_16.0.0-rc2-based variableValue: http://master.qt.io/development_releases/prebuilt/libclang/libclang-release_16.0.0-based
- type: EnvironmentVariable - type: EnvironmentVariable
variableName: QTC_QT_BASE_URL variableName: QTC_QT_BASE_URL
variableValue: "http://ci-files02-hki.intra.qt.io/packages/jenkins/archive/qt/6.4/6.4.2-released/Qt" variableValue: "http://ci-files02-hki.intra.qt.io/packages/jenkins/archive/qt/6.4/6.4.3-released/Qt"
- type: EnvironmentVariable - type: EnvironmentVariable
variableName: QTC_QT_MODULES variableName: QTC_QT_MODULES
variableValue: "qt5compat qtbase qtdeclarative qtimageformats qtquick3d qtquickcontrols2 qtquicktimeline qtserialport qtshadertools qtsvg qttools qttranslations qtwebengine" variableValue: "qt5compat qtbase qtdeclarative qtimageformats qtquick3d qtquickcontrols2 qtquicktimeline qtserialport qtshadertools qtsvg qttools qttranslations qtwebengine"
@@ -24,7 +24,7 @@ instructions:
instructions: instructions:
- type: EnvironmentVariable - type: EnvironmentVariable
variableName: QTC_QT_POSTFIX variableName: QTC_QT_POSTFIX
variableValue: "-Windows-Windows_10_21H2-MSVC2019-Windows-Windows_10_21H2-X86_64.7z" variableValue: "-Windows-Windows_10_22H2-MSVC2019-Windows-Windows_10_22H2-X86_64.7z"
- type: EnvironmentVariable - type: EnvironmentVariable
variableName: QTC_SDKTOOL_QT_EXT variableName: QTC_SDKTOOL_QT_EXT
variableValue: ".zip" variableValue: ".zip"

View File

@@ -15,5 +15,8 @@
<!-- RTA needs Squish to inject itself via DYLD_* --> <!-- RTA needs Squish to inject itself via DYLD_* -->
<key>com.apple.security.cs.allow-dyld-environment-variables</key> <key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/> <true/>
<!-- Allow ourselves to be debugged -->
<key>com.apple.security.get-task-allow</key>
<true/>
</dict> </dict>
</plist> </plist>

View File

@@ -40,6 +40,8 @@ target_link_libraries(appaccelbubble
install(TARGETS appaccelbubble install(TARGETS appaccelbubble
BUNDLE DESTINATION . BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
qt_finalize_executable(appaccelbubble) qt_finalize_executable(appaccelbubble)

View File

@@ -62,7 +62,9 @@ set_target_properties(TextFinder PROPERTIES
install(TARGETS TextFinder install(TARGETS TextFinder
BUNDLE DESTINATION . BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
if(QT_VERSION_MAJOR EQUAL 6) if(QT_VERSION_MAJOR EQUAL 6)
qt_finalize_executable(TextFinder) qt_finalize_executable(TextFinder)

View File

@@ -33,4 +33,6 @@ target_link_libraries(apptransitions
install(TARGETS apptransitions install(TARGETS apptransitions
BUNDLE DESTINATION . BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

View File

@@ -100,7 +100,7 @@ Module {
Properties { Properties {
condition: cpp.present && qbs.toolchain.contains("msvc") && product.Qt condition: cpp.present && qbs.toolchain.contains("msvc") && product.Qt
&& Utilities.versionCompare(Qt.core.version, "6.3") >= 0 && Utilities.versionCompare(product.Qt.core.version, "6.3") >= 0
&& Utilities.versionCompare(cpp.compilerVersion, "19.10") >= 0 && Utilities.versionCompare(cpp.compilerVersion, "19.10") >= 0
&& Utilities.versionCompare(qbs.version, "1.23") < 0 && Utilities.versionCompare(qbs.version, "1.23") < 0
cpp.cxxFlags: "/permissive-" cpp.cxxFlags: "/permissive-"

View File

@@ -8,6 +8,7 @@ from __future__ import print_function
import argparse import argparse
import collections import collections
import os import os
import shlex
import shutil import shutil
import common import common
@@ -43,6 +44,8 @@ def get_arguments():
# signing # signing
parser.add_argument('--keychain-unlock-script', parser.add_argument('--keychain-unlock-script',
help='Path to script for unlocking the keychain used for signing (macOS)') help='Path to script for unlocking the keychain used for signing (macOS)')
parser.add_argument('--sign-command',
help='Command to use for signing (Windows). The installation directory to sign is added at the end. Is run in the CWD.')
# cdbextension # cdbextension
parser.add_argument('--python-path', parser.add_argument('--python-path',
@@ -262,6 +265,14 @@ def zipPatternForApp(paths):
def package_qtcreator(args, paths): def package_qtcreator(args, paths):
if common.is_windows_platform() and args.sign_command:
command = shlex.split(args.sign_command)
if not args.no_qtcreator:
common.check_print_call(command + [paths.install])
common.check_print_call(command + [paths.wininterrupt_install])
if not args.no_cdb:
common.check_print_call(command + [paths.qtcreatorcdbext_install])
if not args.no_zip: if not args.no_zip:
if not args.no_qtcreator: if not args.no_qtcreator:
common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads, common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads,

View File

@@ -9,6 +9,7 @@ import argparse
import collections import collections
import glob import glob
import os import os
import shlex
import common import common
@@ -46,6 +47,9 @@ def get_arguments():
# signing # signing
parser.add_argument('--keychain-unlock-script', parser.add_argument('--keychain-unlock-script',
help='Path to script for unlocking the keychain used for signing (macOS)') help='Path to script for unlocking the keychain used for signing (macOS)')
parser.add_argument('--sign-command',
help='Command to use for signing (Windows). The installation directory to sign is added at the end. Is run in the CWD.')
args = parser.parse_args() args = parser.parse_args()
args.with_debug_info = args.build_type == 'RelWithDebInfo' args.with_debug_info = args.build_type == 'RelWithDebInfo'
return args return args
@@ -140,6 +144,9 @@ def build(args, paths):
def package(args, paths): def package(args, paths):
if not os.path.exists(paths.result): if not os.path.exists(paths.result):
os.makedirs(paths.result) os.makedirs(paths.result)
if common.is_windows_platform() and args.sign_command:
command = shlex.split(args.sign_command)
common.check_print_call(command + [paths.install])
common.check_print_call(['7z', 'a', '-mmt2', os.path.join(paths.result, args.name + '.7z'), '*'], common.check_print_call(['7z', 'a', '-mmt2', os.path.join(paths.result, args.name + '.7z'), '*'],
paths.install) paths.install)
if os.path.exists(paths.dev_install): # some plugins might not provide anything in Devel if os.path.exists(paths.dev_install): # some plugins might not provide anything in Devel

View File

@@ -182,6 +182,7 @@ def std_1_string_dumper(d, value):
size = 0 size = 0
size_mode_value = 0 size_mode_value = 0
short_mode = False short_mode = False
libcxx_version = 14
layoutModeIsDSC = layoutDecider.name == '__data_' layoutModeIsDSC = layoutDecider.name == '__data_'
if (layoutModeIsDSC): if (layoutModeIsDSC):
@@ -200,8 +201,15 @@ def std_1_string_dumper(d, value):
if not size_mode: if not size_mode:
raise Exception("Could not find size_mode") raise Exception("Could not find size_mode")
size_mode_value = size_mode.integer() if size_mode.name == '__is_long_':
short_mode = ((size_mode_value & 1) == 0) libcxx_version = 15
short_mode = (size_mode.integer() == 0)
size_mode = D[1][0][1]
size_mode_value = size_mode.integer()
else:
size_mode_value = size_mode.integer()
short_mode = ((size_mode_value & 1) == 0)
if short_mode: if short_mode:
s = D[1] s = D[1]
@@ -209,8 +217,13 @@ def std_1_string_dumper(d, value):
if not s: if not s:
raise Exception("Could not find s") raise Exception("Could not find s")
location_sp = s[0] if layoutModeIsDSC else s[1] if libcxx_version == 14:
size = size_mode_value if layoutModeIsDSC else ((size_mode_value >> 1) % 256) location_sp = s[0] if layoutModeIsDSC else s[1]
size = size_mode_value if layoutModeIsDSC else ((size_mode_value >> 1) % 256)
elif libcxx_version == 15:
location_sp = s[0] if layoutModeIsDSC else s[2]
size = size_mode_value
else: else:
l = D[0] l = D[0]
if not l: if not l:

View File

@@ -47,7 +47,7 @@ CONFIG += thread
CONFIG -= qt CONFIG -= qt
SOURCES += \\ SOURCES += \\
%{MainCppName} \ %{MainCppName} \\
%{TestCaseFileGTestWithCppSuffix} %{TestCaseFileGTestWithCppSuffix}
@endif @endif
@if "%{TestFrameWork}" == "BoostTest" @if "%{TestFrameWork}" == "BoostTest"

View File

@@ -28,7 +28,9 @@ install(TARGETS %{ProjectName}
@if %{MacOSBundle} @if %{MacOSBundle}
BUNDLE DESTINATION . BUNDLE DESTINATION .
@endif @endif
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
set_target_properties(%{ProjectName} PROPERTIES MACOSX_BUNDLE %{MacOSBundleValue}) set_target_properties(%{ProjectName} PROPERTIES MACOSX_BUNDLE %{MacOSBundleValue})

View File

@@ -36,4 +36,6 @@ endif()
@endif @endif
install(TARGETS %{ProjectName} install(TARGETS %{ProjectName}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

View File

@@ -5,4 +5,6 @@ project(%{ProjectName} LANGUAGES C)
add_executable(%{ProjectName} %{CFileName}) add_executable(%{ProjectName} %{CFileName})
install(TARGETS %{ProjectName} install(TARGETS %{ProjectName}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

View File

@@ -8,4 +8,6 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_executable(%{ProjectName} %{CppFileName}) add_executable(%{ProjectName} %{CppFileName})
install(TARGETS %{ProjectName} install(TARGETS %{ProjectName}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

View File

@@ -41,4 +41,6 @@ target_link_libraries(%{TargetName}
install(TARGETS %{TargetName} install(TARGETS %{TargetName}
BUNDLE DESTINATION . BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)

View File

@@ -74,7 +74,9 @@ set_target_properties(%{ProjectName} PROPERTIES
install(TARGETS %{ProjectName} install(TARGETS %{ProjectName}
BUNDLE DESTINATION . BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
if(QT_VERSION_MAJOR EQUAL 6) if(QT_VERSION_MAJOR EQUAL 6)
qt_finalize_executable(%{ProjectName}) qt_finalize_executable(%{ProjectName})

View File

@@ -41132,7 +41132,7 @@ The affected files are:
</message> </message>
<message> <message>
<source>Platform:</source> <source>Platform:</source>
<translation type="unfinished">Plattform:</translation> <translation>Plattform:</translation>
</message> </message>
<message> <message>
<source>Library inside &quot;debug&quot; or &quot;release&quot; subfolder</source> <source>Library inside &quot;debug&quot; or &quot;release&quot; subfolder</source>
@@ -41334,19 +41334,19 @@ Weder der Pfad zur Bibliothek noch der Pfad zu den Headerdateien wird zur .pro-D
</message> </message>
<message> <message>
<source>The process &quot;%1&quot; exited normally.</source> <source>The process &quot;%1&quot; exited normally.</source>
<translation type="unfinished">Der Prozess &quot;%1&quot; wurde normal beendet.</translation> <translation>Der Prozess &quot;%1&quot; wurde normal beendet.</translation>
</message> </message>
<message> <message>
<source>The process &quot;%1&quot; exited with code %2.</source> <source>The process &quot;%1&quot; exited with code %2.</source>
<translation type="unfinished">Der Prozess &quot;%1&quot; wurde mit dem Rückgabewert %2 beendet.</translation> <translation>Der Prozess &quot;%1&quot; wurde mit dem Rückgabewert %2 beendet.</translation>
</message> </message>
<message> <message>
<source>Could not start process &quot;%1&quot; %2.</source> <source>Could not start process &quot;%1&quot; %2.</source>
<translation type="unfinished">Der Prozess &quot;%1&quot; %2 konnte nicht gestartet werden.</translation> <translation>Der Prozess &quot;%1&quot; %2 konnte nicht gestartet werden.</translation>
</message> </message>
<message> <message>
<source>The process &quot;%1&quot; crashed.</source> <source>The process &quot;%1&quot; crashed.</source>
<translation type="unfinished">Der Prozess &quot;%1&quot; ist abgestürzt.</translation> <translation>Der Prozess &quot;%1&quot; ist abgestürzt.</translation>
</message> </message>
<message> <message>
<source>ABIs:</source> <source>ABIs:</source>
@@ -41399,19 +41399,19 @@ Weder der Pfad zur Bibliothek noch der Pfad zu den Headerdateien wird zur .pro-D
</message> </message>
<message> <message>
<source>Run</source> <source>Run</source>
<translation type="unfinished">Ausführen</translation> <translation>Ausführen</translation>
</message> </message>
<message> <message>
<source>Ignore</source> <source>Ignore</source>
<translation type="unfinished"></translation> <translation>Ignorieren</translation>
</message> </message>
<message> <message>
<source>Use global setting</source> <source>Use global setting</source>
<translation type="unfinished"></translation> <translation>Globale Einstellung verwenden</translation>
</message> </message>
<message> <message>
<source>qmake system() behavior when parsing:</source> <source>qmake system() behavior when parsing:</source>
<translation type="unfinished"></translation> <translation>Verhalten von qmake system() beim Auswerten:</translation>
</message> </message>
<message> <message>
<source>General</source> <source>General</source>
@@ -41482,11 +41482,11 @@ Weder der Pfad zur Bibliothek noch der Pfad zu den Headerdateien wird zur .pro-D
</message> </message>
<message> <message>
<source>Cannot parse project &quot;%1&quot;: The currently selected kit &quot;%2&quot; does not have a valid Qt.</source> <source>Cannot parse project &quot;%1&quot;: The currently selected kit &quot;%2&quot; does not have a valid Qt.</source>
<translation type="unfinished"></translation> <translation>Die Auswertung des Projekts &quot;%1&quot; ist fehlgeschlagen: Das ausgewählte Kit &quot;%2&quot; hat keine gültige Qt-Version.</translation>
</message> </message>
<message> <message>
<source>Cannot parse project &quot;%1&quot;: No kit selected.</source> <source>Cannot parse project &quot;%1&quot;: No kit selected.</source>
<translation type="unfinished"></translation> <translation>Die Auswertung des Projekts &quot;%1&quot; ist fehlgeschlagen: Kein Kit ausgewählt.</translation>
</message> </message>
<message> <message>
<source>No Qt version set in kit.</source> <source>No Qt version set in kit.</source>
@@ -41506,35 +41506,35 @@ Weder der Pfad zur Bibliothek noch der Pfad zu den Headerdateien wird zur .pro-D
</message> </message>
<message> <message>
<source>Generate Xcode project (via qmake)</source> <source>Generate Xcode project (via qmake)</source>
<translation type="unfinished"></translation> <translation>Xcode-Projekt generieren (mittels qmake)</translation>
</message> </message>
<message> <message>
<source>Generate Visual Studio project (via qmake)</source> <source>Generate Visual Studio project (via qmake)</source>
<translation type="unfinished"></translation> <translation>Visual Studio-Projekt generieren (mittels qmake)</translation>
</message> </message>
<message> <message>
<source>qmake generator failed: %1.</source> <source>qmake generator failed: %1.</source>
<translation type="unfinished"></translation> <translation>qmake-Generator fehlgeschlagen: %1.</translation>
</message> </message>
<message> <message>
<source>No Qt in kit</source> <source>No Qt in kit</source>
<translation type="unfinished"></translation> <translation>Kein Qt im Kit</translation>
</message> </message>
<message> <message>
<source>No valid qmake executable</source> <source>No valid qmake executable</source>
<translation type="unfinished"></translation> <translation>Keine gültige ausführbare qmake-Datei</translation>
</message> </message>
<message> <message>
<source>No qmake step in active build configuration</source> <source>No qmake step in active build configuration</source>
<translation type="unfinished"></translation> <translation>Kein qmake-Build-Schritt in der aktiven Build-Konfiguration</translation>
</message> </message>
<message> <message>
<source>Cannot create output directory &quot;%1&quot;</source> <source>Cannot create output directory &quot;%1&quot;</source>
<translation type="unfinished"></translation> <translation>Das Ausgabeverzeichnis &quot;%1&quot; konnte nicht angelegt werden</translation>
</message> </message>
<message> <message>
<source>Running in %1: %2</source> <source>Running in %1: %2</source>
<translation type="unfinished">Führe in %1 aus: %2 {1:?}</translation> <translation>Führe in %1 aus: %2</translation>
</message> </message>
<message> <message>
<source>Build</source> <source>Build</source>
@@ -41656,7 +41656,7 @@ Bitte aktualisieren Sie Ihr Kit (%3) oder wählen Sie eine mkspec für qmake, di
</message> </message>
<message> <message>
<source>The build directory is not at the same level as the source directory, which could be the reason for the build failure.</source> <source>The build directory is not at the same level as the source directory, which could be the reason for the build failure.</source>
<translation type="unfinished"></translation> <translation>Das Build-Verzeichnis liegt nicht auf der gleichen Ebene wie das Quellverzeichnis, was der Grund für den Fehler beim Erstellen sein könnte.</translation>
</message> </message>
<message> <message>
<source>Qt mkspec</source> <source>Qt mkspec</source>
@@ -41680,7 +41680,7 @@ Bitte aktualisieren Sie Ihr Kit (%3) oder wählen Sie eine mkspec für qmake, di
</message> </message>
<message> <message>
<source>Mkspec configured for qmake by the kit.</source> <source>Mkspec configured for qmake by the kit.</source>
<translation type="unfinished"></translation> <translation>Mkspec, die im Kit für qmake konfiguriert ist.</translation>
</message> </message>
<message> <message>
<source>Reading Project &quot;%1&quot;</source> <source>Reading Project &quot;%1&quot;</source>
@@ -41688,43 +41688,43 @@ Bitte aktualisieren Sie Ihr Kit (%3) oder wählen Sie eine mkspec für qmake, di
</message> </message>
<message> <message>
<source>Warn if a project&apos;s source and build directories are not at the same level</source> <source>Warn if a project&apos;s source and build directories are not at the same level</source>
<translation type="unfinished"></translation> <translation>Warnen, wenn das Quell- und das Build-Verzeichnis eines Projekts nicht auf der gleichen Ebene liegen</translation>
</message> </message>
<message> <message>
<source>Qmake has subtle bugs that can be triggered if source and build directory are not at the same level.</source> <source>Qmake has subtle bugs that can be triggered if source and build directory are not at the same level.</source>
<translation type="unfinished"></translation> <translation>In qmake können subtile Fehler ausgelöst werden, wenn das Quell- und das Build-Verzeichnis nicht auf der gleichen Ebene liegen.</translation>
</message> </message>
<message> <message>
<source>Run qmake on every build</source> <source>Run qmake on every build</source>
<translation type="unfinished"></translation> <translation>qmake bei jedem Erstellen ausführen</translation>
</message> </message>
<message> <message>
<source>This option can help to prevent failures on incremental builds, but might slow them down unnecessarily in the general case.</source> <source>This option can help to prevent failures on incremental builds, but might slow them down unnecessarily in the general case.</source>
<translation type="unfinished"></translation> <translation>Diese Einstellung kann Fehler beim inkrementellen Erstellen verhindern, aber das Erstellen im Allgemeinen unnötig verlangsamen.</translation>
</message> </message>
<message> <message>
<source>Ignore qmake&apos;s system() function when parsing a project</source> <source>Ignore qmake&apos;s system() function when parsing a project</source>
<translation type="unfinished"></translation> <translation>Qmakes system()-Funktion beim Auswerten eines Projektes ignorieren</translation>
</message> </message>
<message> <message>
<source>Checking this option avoids unwanted side effects, but may result in inexact parsing results.</source> <source>Checking this option avoids unwanted side effects, but may result in inexact parsing results.</source>
<translation type="unfinished"></translation> <translation>Diese Einstellung verhindert ungewollte Nebeneffekte, kann aber zu ungenauen Resultaten beim Auswerten führen.</translation>
</message> </message>
<message> <message>
<source>Qmake</source> <source>Qmake</source>
<translation type="unfinished"></translation> <translation>Qmake</translation>
</message> </message>
<message> <message>
<source>Required Qt features not present.</source> <source>Required Qt features not present.</source>
<translation type="unfinished"></translation> <translation>Benötigte Qt-Funktionen sind nicht vorhanden.</translation>
</message> </message>
<message> <message>
<source>Qt version does not target the expected platform.</source> <source>Qt version does not target the expected platform.</source>
<translation type="unfinished"></translation> <translation>Die Qt-Version unterstützt die erwartete Plattform nicht als Ziel.</translation>
</message> </message>
<message> <message>
<source>Qt version does not provide all features.</source> <source>Qt version does not provide all features.</source>
<translation type="unfinished"></translation> <translation>Die Qt-Version stellt nicht alle Funktionen zur Verfügung.</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -41940,11 +41940,21 @@ For qmlproject projects, use the importPaths property to add import paths.
For CMake projects, make sure QML_IMPORT_PATH variable is in CMakeCache.txt. For CMake projects, make sure QML_IMPORT_PATH variable is in CMakeCache.txt.
For qmlRegister... calls, make sure that you define the Module URI as a string literal. For qmlRegister... calls, make sure that you define the Module URI as a string literal.
</source> </source>
<translation type="unfinished"></translation> <translation>QML-Modul wurde nicht gefunden (%1).
Import-Verzeichnisse:
%2
Für qmake-Projekte benutzen Sie die Variable QML_IMPORT_PATH, um Importpfade hinzuzufügen.
Für Qbs-Projekte geben Sie eine qmlImportPaths-Eigenschaft in Ihrem Produkt an, um Importpfade hinzuzufügen.
Für qmlproject-Projekte benutzen Sie die importPaths-Eigenschaft, um Importpfade hinzuzufügen.
Für CMake-Projekte stellen Sie sicher, dass die Variable QML_IMPORT_PATH in CMakeCache.txt steht.
Für qmlRegister...-Aufrufe stellen Sie sicher, dass Sie den Modul-URI als Zeichenkettenliteral definieren.
</translation>
</message> </message>
<message> <message>
<source>QML module contains C++ plugins, currently reading type information... %1</source> <source>QML module contains C++ plugins, currently reading type information... %1</source>
<translation type="unfinished"></translation> <translation>Das QML-Modul enthält C++-Plugins. Lese Typinformationen... %1</translation>
</message> </message>
<message> <message>
<source>Implicit import &apos;%1&apos; of QML module &apos;%2&apos; not found. <source>Implicit import &apos;%1&apos; of QML module &apos;%2&apos; not found.
@@ -41970,7 +41980,7 @@ Für CMake-Projekte stellen Sie sicher, dass die Variable QML_IMPORT_PATH in CMa
</message> </message>
<message> <message>
<source>Hit maximal recursion depth in AST visit.</source> <source>Hit maximal recursion depth in AST visit.</source>
<translation type="unfinished"></translation> <translation>Maximale Rekursionstiefe beim Durchlaufen des Syntaxbaums erreicht.</translation>
</message> </message>
<message> <message>
<source>package import requires a version number</source> <source>package import requires a version number</source>
@@ -41978,7 +41988,7 @@ Für CMake-Projekte stellen Sie sicher, dass die Variable QML_IMPORT_PATH in CMa
</message> </message>
<message> <message>
<source>Nested inline components are not supported</source> <source>Nested inline components are not supported</source>
<translation type="unfinished"></translation> <translation>Verschachtelte Inline-Komponenten werden nicht unterstützt</translation>
</message> </message>
<message> <message>
<source>Errors while loading qmltypes from %1: <source>Errors while loading qmltypes from %1:
@@ -42070,7 +42080,7 @@ Für CMake-Projekte stellen Sie sicher, dass die Variable QML_IMPORT_PATH in CMa
</message> </message>
<message> <message>
<source>Expected string literal to contain &apos;Package/Name major.minor&apos; or &apos;Name major.minor&apos;.</source> <source>Expected string literal to contain &apos;Package/Name major.minor&apos; or &apos;Name major.minor&apos;.</source>
<translation>Das Zeichenkettenliteral sollte &apos;Package/Name major.minor&apos; oder &apos;Name major.minor&apos; enthalten./</translation> <translation>Das Zeichenkettenliteral sollte &apos;Package/Name major.minor&apos; oder &apos;Name major.minor&apos; enthalten.</translation>
</message> </message>
<message> <message>
<source>Expected array of numbers after colon.</source> <source>Expected array of numbers after colon.</source>
@@ -42278,87 +42288,87 @@ Weitere Informationen finden Sie auf der Dokumentationsseite &quot;Checking Code
</message> </message>
<message> <message>
<source>Imperative code is not supported in Qt Design Studio.</source> <source>Imperative code is not supported in Qt Design Studio.</source>
<translation type="unfinished"></translation> <translation>Imperativer Code wird von Qt Design Studio nicht unterstützt.</translation>
</message> </message>
<message> <message>
<source>This type (%1) is not supported in Qt Design Studio.</source> <source>This type (%1) is not supported in Qt Design Studio.</source>
<translation type="unfinished"></translation> <translation>Dieser Typ (%1) wird von Qt Design Studio nicht unterstützt.</translation>
</message> </message>
<message> <message>
<source>Reference to parent item cannot be resolved correctly by Qt Design Studio.</source> <source>Reference to parent item cannot be resolved correctly by Qt Design Studio.</source>
<translation type="unfinished"></translation> <translation>Die Referenz zum übergeordneten Element kann von Qt Design Studio nicht korrekt aufgelöst werden.</translation>
</message> </message>
<message> <message>
<source>This visual property binding cannot be evaluated in the local context and might not show up in Qt Design Studio as expected.</source> <source>This visual property binding cannot be evaluated in the local context and might not show up in Qt Design Studio as expected.</source>
<translation type="unfinished"></translation> <translation>Diese visuelle Bindung der Eigenschaft kann nicht im lokalen Kontext ausgewertet werden und wird möglicherweise nicht wie erwartet in Qt Design Studio angezeigt.</translation>
</message> </message>
<message> <message>
<source>Qt Design Studio only supports states in the root item.</source> <source>Qt Design Studio only supports states in the root item.</source>
<translation type="unfinished"></translation> <translation>Qt Design Studio unterstützt States nur im Wurzelelement.</translation>
</message> </message>
<message> <message>
<source>This id might be ambiguous and is not supported in Qt Design Studio.</source> <source>This id might be ambiguous and is not supported in Qt Design Studio.</source>
<translation type="unfinished"></translation> <translation>Diese ID ist möglicherweise nicht eindeutig und wird von Qt Design Studio nicht unterstützt.</translation>
</message> </message>
<message> <message>
<source>This type (%1) is not supported as a root element by Qt Design Studio.</source> <source>This type (%1) is not supported as a root element by Qt Design Studio.</source>
<translation type="unfinished"></translation> <translation>Dieser Typ (%1) wird von Qt Design Studio nicht als Wurzelelement unterstützt.</translation>
</message> </message>
<message> <message>
<source>This type (%1) is not supported as a root element of a UI file (.ui.qml).</source> <source>This type (%1) is not supported as a root element of a UI file (.ui.qml).</source>
<translation type="unfinished"></translation> <translation>Dieser Typ (%1) wird von UI-Dateien (.ui.qml) nicht als Wurzelelement unterstützt.</translation>
</message> </message>
<message> <message>
<source>This type (%1) is not supported in a UI file (.ui.qml).</source> <source>This type (%1) is not supported in a UI file (.ui.qml).</source>
<translation type="unfinished"></translation> <translation>Dieser Typ (%1) wird von UI-Dateien (.ui.qml) nicht unterstützt.</translation>
</message> </message>
<message> <message>
<source>Functions are not supported in a UI file (.ui.qml).</source> <source>Functions are not supported in a UI file (.ui.qml).</source>
<translation type="unfinished"></translation> <translation>Funktionen werden von UI-Dateien (.ui.qml) nicht unterstützt.</translation>
</message> </message>
<message> <message>
<source>JavaScript blocks are not supported in a UI file (.ui.qml).</source> <source>JavaScript blocks are not supported in a UI file (.ui.qml).</source>
<translation type="unfinished"></translation> <translation>JavaScript-Blöcke werden von UI-Dateien (.ui.qml) nicht unterstützt.</translation>
</message> </message>
<message> <message>
<source>Behavior type is not supported in a UI file (.ui.qml).</source> <source>Behavior type is not supported in a UI file (.ui.qml).</source>
<translation type="unfinished"></translation> <translation>Der Behavior-Typ wird von UI-Dateien (.ui.qml) nicht unterstützt.</translation>
</message> </message>
<message> <message>
<source>States are only supported in the root item in a UI file (.ui.qml).</source> <source>States are only supported in the root item in a UI file (.ui.qml).</source>
<translation type="unfinished"></translation> <translation>States werden nur im Wurzelelement von UI-Dateien (.ui.qml) unterstützt.</translation>
</message> </message>
<message> <message>
<source>Referencing the parent of the root item is not supported in a UI file (.ui.qml).</source> <source>Referencing the parent of the root item is not supported in a UI file (.ui.qml).</source>
<translation type="unfinished"></translation> <translation>Das Referenzieren auf das übergeordnete Element des Wurzelelements wird von UI-Dateien (.ui.qml) nicht unterstützt.</translation>
</message> </message>
<message> <message>
<source>Do not mix translation functions in a UI file (.ui.qml).</source> <source>Do not mix translation functions in a UI file (.ui.qml).</source>
<translation type="unfinished"></translation> <translation>Vermischen Sie keine Übersetzungsfunktionen in UI-Dateien (.ui.qml).</translation>
</message> </message>
<message> <message>
<source>Type cannot be instantiated recursively (%1).</source> <source>Type cannot be instantiated recursively (%1).</source>
<translation type="unfinished"></translation> <translation>Typ kann nicht rekursiv instanziiert werden (%1).</translation>
</message> </message>
<message> <message>
<source>Logical value does not depend on actual values.</source> <source>Logical value does not depend on actual values.</source>
<translation type="unfinished"></translation> <translation>Logischer Wert hängt nicht von tatsächlichen Werten ab.</translation>
</message> </message>
<message> <message>
<source>Components are only allowed to have a single child element.</source> <source>Components are only allowed to have a single child element.</source>
<translation type="unfinished"></translation> <translation>Komponenten dürfen nur ein einziges Kindelement besitzen.</translation>
</message> </message>
<message> <message>
<source>Components require a child element.</source> <source>Components require a child element.</source>
<translation type="unfinished"></translation> <translation>Komponenten müssen ein Kindelement besitzen.</translation>
</message> </message>
<message> <message>
<source>Do not reference the root item as alias.</source> <source>Do not reference the root item as alias.</source>
<translation type="unfinished"></translation> <translation>Referenzieren Sie das Wurzelelement nicht als Alias.</translation>
</message> </message>
<message> <message>
<source>Avoid referencing the root item in a hierarchy.</source> <source>Avoid referencing the root item in a hierarchy.</source>
<translation type="unfinished"></translation> <translation>Vermeiden Sie, das Wurzelelement in einer Hierarchie zu referenzieren.</translation>
</message> </message>
<message> <message>
<source>A State cannot have a child item (%1).</source> <source>A State cannot have a child item (%1).</source>
@@ -42446,8 +42456,7 @@ Weitere Informationen finden Sie auf der Dokumentationsseite &quot;Checking Code
</message> </message>
<message> <message>
<source>Minimum number value is %1.</source> <source>Minimum number value is %1.</source>
<translation>Minimalwert ist %1. <translation>Minimalwert ist %1.</translation>
</translation>
</message> </message>
<message> <message>
<source>Maximum number value is exclusive.</source> <source>Maximum number value is exclusive.</source>
@@ -42485,7 +42494,7 @@ Weitere Informationen finden Sie auf der Dokumentationsseite &quot;Checking Code
<source>Automatic type dump of QML module failed. <source>Automatic type dump of QML module failed.
Errors: Errors:
%1</source> %1</source>
<translation>Die automatische Ausgabe der Typen des QML-Modules schlug fehl. <translation>Die automatische Ausgabe der Typen des QML-Moduls schlug fehl.
Fehler: Fehler:
%1</translation> %1</translation>
</message> </message>
@@ -42506,12 +42515,16 @@ First 10 lines or errors:
%1 %1
Check General Messages for details.</source> Check General Messages for details.</source>
<translation type="unfinished"></translation> <translation>Die automatische Ausgabe der Typen des QML-Moduls schlug fehl.
Die ersten 10 Zeilen oder Fehler:
%1
Überprüfen Sie die Ansicht &quot;Allgemeine Ausgaben&quot;, um Details zu erhalten.</translation>
</message> </message>
<message> <message>
<source>Warnings while parsing QML type information of %1: <source>Warnings while parsing QML type information of %1:
%2</source> %2</source>
<translation>Warnungen beim Auswerten der QML-Typinformation von %1: <translation>Warnungen beim Auswerten der QML-Typinformationen von %1:
%2</translation> %2</translation>
</message> </message>
<message> <message>
@@ -42556,25 +42569,27 @@ Bitte erstellen Sie die Anwendung qmldump auf der Einstellungsseite der Qt-Versi
</message> </message>
<message> <message>
<source>The type will only be available in the QML editors when the type name is a string literal.</source> <source>The type will only be available in the QML editors when the type name is a string literal.</source>
<translation type="unfinished">Dieser Typ wird im QML Editor nur sichtbar sein, wenn der Typname ein Zeichenketten-Literal ist.</translation> <translation>Dieser Typ wird im QML-Editor nur sichtbar sein, wenn der Typname ein Zeichenkettenliteral ist.</translation>
</message> </message>
<message> <message>
<source>The module URI cannot be determined by static analysis. The type will not be available <source>The module URI cannot be determined by static analysis. The type will not be available
globally in the QML editor. You can add a &quot;// @uri My.Module.Uri&quot; annotation to let globally in the QML editor. You can add a &quot;// @uri My.Module.Uri&quot; annotation to let
the QML editor know about a likely URI.</source> the QML editor know about a likely URI.</source>
<translation type="unfinished"></translation> <translation>Der Modul-URI kann durch statische Analyse nicht ermittelt werden.
Der Typ wird nicht global im QML-Editor verfügbar sein.
Sie können eine Annotation &quot;// @uri My.Module.Uri&quot; hinzufügen, um dem QML-Editor einen mögliche URI mitzuteilen.</translation>
</message> </message>
<message> <message>
<source>must be a string literal to be available in the QML editor</source> <source>must be a string literal to be available in the QML editor</source>
<translation type="unfinished">muss eine Zeichenkette sein, um im QML-Editor verfügbar zu sein</translation> <translation>muss ein Zeichenkettenliteral sein, um im QML-Editor verfügbar zu sein</translation>
</message> </message>
<message> <message>
<source>XML error on line %1, col %2: %3</source> <source>XML error on line %1, col %2: %3</source>
<translation type="unfinished">XML-Fehler in Zeile %1, Spalte %2: %3</translation> <translation>XML-Fehler in Zeile %1, Spalte %2: %3</translation>
</message> </message>
<message> <message>
<source>The &lt;RCC&gt; root element is missing.</source> <source>The &lt;RCC&gt; root element is missing.</source>
<translation type="unfinished">Das Wurzelelement (&lt;RCC&gt;) fehlt.</translation> <translation>Das Wurzelelement (&lt;RCC&gt;) fehlt.</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -42626,7 +42641,7 @@ the QML editor know about a likely URI.</source>
</message> </message>
<message> <message>
<source>Add a Comment to Suppress This Message</source> <source>Add a Comment to Suppress This Message</source>
<translation type="unfinished">Fügen Sie einen Kommentar ein, um diese Nachricht zu unterdrücken</translation> <translation>Fügen Sie einen Kommentar ein, um diese Nachricht zu unterdrücken</translation>
</message> </message>
<message> <message>
<source>Property assignments for %1:</source> <source>Property assignments for %1:</source>
@@ -42642,15 +42657,15 @@ the QML editor know about a likely URI.</source>
</message> </message>
<message> <message>
<source>Invalid component name.</source> <source>Invalid component name.</source>
<translation type="unfinished"></translation> <translation>Ungültiger Komponentenname.</translation>
</message> </message>
<message> <message>
<source>Invalid path.</source> <source>Invalid path.</source>
<translation type="unfinished"></translation> <translation>Ungültiger Pfad.</translation>
</message> </message>
<message> <message>
<source>Component already exists.</source> <source>Component already exists.</source>
<translation type="unfinished">Komponente existiert bereits.</translation> <translation>Komponente existiert bereits.</translation>
</message> </message>
<message> <message>
<source>Component Name</source> <source>Component Name</source>
@@ -42706,15 +42721,15 @@ the QML editor know about a likely URI.</source>
</message> </message>
<message> <message>
<source>Use custom command instead of built-in formatter</source> <source>Use custom command instead of built-in formatter</source>
<translation type="unfinished"></translation> <translation>Benutzerdefiniertes Kommando anstatt des integrierten Formatierers benutzen</translation>
</message> </message>
<message> <message>
<source>Command:</source> <source>Command:</source>
<translation type="unfinished"></translation> <translation>Kommando:</translation>
</message> </message>
<message> <message>
<source>Arguments:</source> <source>Arguments:</source>
<translation type="unfinished">Argumente:</translation> <translation>Argumente:</translation>
</message> </message>
<message> <message>
<source>Always show Qt Quick Toolbar</source> <source>Always show Qt Quick Toolbar</source>
@@ -42722,23 +42737,23 @@ the QML editor know about a likely URI.</source>
</message> </message>
<message> <message>
<source>Always Ask</source> <source>Always Ask</source>
<translation type="unfinished">Stets fragen</translation> <translation>Stets fragen</translation>
</message> </message>
<message> <message>
<source>Qt Design Studio</source> <source>Qt Design Studio</source>
<translation type="unfinished">Qt Design Studio</translation> <translation>Qt Design Studio</translation>
</message> </message>
<message> <message>
<source>Qt Creator</source> <source>Qt Creator</source>
<translation type="unfinished"></translation> <translation>Qt Creator</translation>
</message> </message>
<message> <message>
<source>Use qmlls (EXPERIMENTAL!)</source> <source>Use qmlls (EXPERIMENTAL!)</source>
<translation type="unfinished"></translation> <translation>qmlls benutzen (EXPERIMENTELL!)</translation>
</message> </message>
<message> <message>
<source>Always use latest qmlls</source> <source>Always use latest qmlls</source>
<translation type="unfinished"></translation> <translation>Stets das neueste qmlls benutzen</translation>
</message> </message>
<message> <message>
<source>Automatic Formatting on File Save</source> <source>Automatic Formatting on File Save</source>
@@ -42746,11 +42761,11 @@ the QML editor know about a likely URI.</source>
</message> </message>
<message> <message>
<source>Open .ui.qml files with:</source> <source>Open .ui.qml files with:</source>
<translation type="unfinished"></translation> <translation>.ui.qml-Dateien öffnen mit:</translation>
</message> </message>
<message> <message>
<source>Language Server</source> <source>Language Server</source>
<translation type="unfinished"></translation> <translation>Language Server</translation>
</message> </message>
<message> <message>
<source>Enable auto format on file save</source> <source>Enable auto format on file save</source>
@@ -42810,19 +42825,19 @@ the QML editor know about a likely URI.</source>
</message> </message>
<message> <message>
<source>Library at %1</source> <source>Library at %1</source>
<translation type="unfinished">Bibliothek bei %1</translation> <translation>Bibliothek bei %1</translation>
</message> </message>
<message> <message>
<source>Dumped plugins successfully.</source> <source>Dumped plugins successfully.</source>
<translation type="unfinished">Plugin-Information erfolgreich bestimmt.</translation> <translation>Plugin-Information erfolgreich bestimmt.</translation>
</message> </message>
<message> <message>
<source>Read typeinfo files successfully.</source> <source>Read typeinfo files successfully.</source>
<translation type="unfinished">typeinfo-Dateien gelesen.</translation> <translation>typeinfo-Dateien erfolgreich gelesen.</translation>
</message> </message>
<message> <message>
<source>Qmlls (%1)</source> <source>Qmlls (%1)</source>
<translation type="unfinished"></translation> <translation>Qmlls (%1)</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -42857,16 +42872,16 @@ the QML editor know about a likely URI.</source>
</message> </message>
<message> <message>
<source>Qml JS Code Style</source> <source>Qml JS Code Style</source>
<translation type="unfinished"></translation> <translation>QML JS Coding Style</translation>
</message> </message>
<message> <message>
<source>&amp;Line length:</source> <source>&amp;Line length:</source>
<translation type="unfinished"></translation> <translation>&amp;Zeilenlänge:</translation>
</message> </message>
<message> <message>
<source>Global</source> <source>Global</source>
<comment>Settings</comment> <comment>Settings</comment>
<translation type="unfinished">Global</translation> <translation>Global</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -48403,7 +48418,7 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält.
</message> </message>
<message> <message>
<source>Pressing Alt displays context-sensitive help or type information as tooltips.</source> <source>Pressing Alt displays context-sensitive help or type information as tooltips.</source>
<translation>Drücken Sie die Alt-Taste um kontextabhängige Hilfe oder Typinformation als Tooltip anzuzeigen.</translation> <translation>Drücken Sie die Alt-Taste, um kontextabhängige Hilfe oder Typinformationen als Tooltip anzuzeigen.</translation>
</message> </message>
<message> <message>
<source>Using Select Block Up / Down actions will now provide smarter selections.</source> <source>Using Select Block Up / Down actions will now provide smarter selections.</source>

View File

@@ -323,7 +323,7 @@
</message> </message>
<message> <message>
<source>Please enter the directory in which you want to build your project. Qt Creator recommends to not use the source directory for building. This ensures that the source directory remains clean and enables multiple builds with different settings.</source> <source>Please enter the directory in which you want to build your project. Qt Creator recommends to not use the source directory for building. This ensures that the source directory remains clean and enables multiple builds with different settings.</source>
<translation>Qt Creator </translation> <translation>Qt Creator </translation>
</message> </message>
</context> </context>
<context> <context>
@@ -1740,7 +1740,7 @@
</message> </message>
<message> <message>
<source>Enable Doxygen blocks</source> <source>Enable Doxygen blocks</source>
<translation> Doxygen </translation> <translation> Doxygen </translation>
</message> </message>
<message> <message>
<source>Generate a &lt;i&gt;brief&lt;/i&gt; command with an initial description for the corresponding declaration</source> <source>Generate a &lt;i&gt;brief&lt;/i&gt; command with an initial description for the corresponding declaration</source>
@@ -1978,11 +1978,11 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
</message> </message>
<message> <message>
<source>Enabled</source> <source>Enabled</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>Disabled</source> <source>Disabled</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>, pending</source> <source>, pending</source>
@@ -2340,7 +2340,7 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
</message> </message>
<message> <message>
<source>Checking this will enable tooltips for variable values during debugging. Since this can slow down debugging and does not provide reliable information as it does not use scope information, it is switched off by default.</source> <source>Checking this will enable tooltips for variable values during debugging. Since this can slow down debugging and does not provide reliable information as it does not use scope information, it is switched off by default.</source>
<translation> 使</translation> <translation> 使</translation>
</message> </message>
<message> <message>
<source>Use Tooltips in Locals View When Debugging</source> <source>Use Tooltips in Locals View When Debugging</source>
@@ -2368,7 +2368,7 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
</message> </message>
<message> <message>
<source>Enable Reverse Debugging</source> <source>Enable Reverse Debugging</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>Register For Post-Mortem Debugging</source> <source>Register For Post-Mortem Debugging</source>
@@ -2384,7 +2384,7 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
</message> </message>
<message> <message>
<source>Checking this will enable tooltips in the locals view during debugging.</source> <source>Checking this will enable tooltips in the locals view during debugging.</source>
<translation>使</translation> <translation></translation>
</message> </message>
<message> <message>
<source>Break on &quot;abort&quot;</source> <source>Break on &quot;abort&quot;</source>
@@ -2400,7 +2400,7 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
</message> </message>
<message> <message>
<source>Checking this will enable tooltips in the breakpoints view during debugging.</source> <source>Checking this will enable tooltips in the breakpoints view during debugging.</source>
<translation>使</translation> <translation></translation>
</message> </message>
<message> <message>
<source>Show Address Data in Breakpoints View when Debugging</source> <source>Show Address Data in Breakpoints View when Debugging</source>
@@ -3060,11 +3060,11 @@ at debugger startup.</source>
</message> </message>
<message> <message>
<source>Enable reverse debugging</source> <source>Enable reverse debugging</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Selecting this enables reverse debugging.&lt;/p&gt;&lt;.p&gt;&lt;b&gt;Note:&lt;/b&gt; This feature is very slow and unstable on the GDB side.It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session.&lt;/p&gt;&lt;body&gt;&lt;/html&gt;</source> <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;Selecting this enables reverse debugging.&lt;/p&gt;&lt;.p&gt;&lt;b&gt;Note:&lt;/b&gt; This feature is very slow and unstable on the GDB side.It exhibits unpredictable behavior when going backwards over system calls and is very likely to destroy your debugging session.&lt;/p&gt;&lt;body&gt;&lt;/html&gt;</source>
<translation type="obsolete">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;/p&gt;&lt;.p&gt;&lt;b&gt;&lt;/b&gt; GDB &lt;/p&gt;&lt;body&gt;&lt;/html&gt;</translation> <translation type="obsolete">&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;/p&gt;&lt;.p&gt;&lt;b&gt;&lt;/b&gt; GDB &lt;/p&gt;&lt;body&gt;&lt;/html&gt;</translation>
</message> </message>
<message> <message>
<source>Additional Startup Commands</source> <source>Additional Startup Commands</source>
@@ -6262,7 +6262,7 @@ Add, modify, and remove document filters, which determine the documentation set
</message> </message>
<message> <message>
<source>Skipping disabled step %1.</source> <source>Skipping disabled step %1.</source>
<translation> %1 </translation> <translation> %1 </translation>
</message> </message>
<message> <message>
<source>Custom Executable</source> <source>Custom Executable</source>
@@ -7083,7 +7083,7 @@ Do you want to ignore them?</source>
</message> </message>
<message> <message>
<source>Building &apos;%1&apos; is disabled: %2&lt;br&gt;</source> <source>Building &apos;%1&apos; is disabled: %2&lt;br&gt;</source>
<translation> &apos;%1&apos; %2&lt;br&gt;</translation> <translation> "%1"%2&lt;br&gt;</translation>
</message> </message>
<message> <message>
<source>A build is in progress</source> <source>A build is in progress</source>
@@ -7092,7 +7092,7 @@ Do you want to ignore them?</source>
<message> <message>
<source>Building &apos;%1&apos; is disabled: %2 <source>Building &apos;%1&apos; is disabled: %2
</source> </source>
<translation> &apos;%1&apos; %2 <translation> "%1"%2
</translation> </translation>
</message> </message>
<message> <message>
@@ -7689,7 +7689,7 @@ Preselects a desktop Qt for building the application if available.</source>
</message> </message>
<message> <message>
<source>Enable QML debugging:</source> <source>Enable QML debugging:</source>
<translation> QML </translation> <translation> QML </translation>
</message> </message>
<message> <message>
<source>Might make your application vulnerable. Only use in a safe environment.</source> <source>Might make your application vulnerable. Only use in a safe environment.</source>
@@ -8513,7 +8513,7 @@ The following encodings are likely to fit:</source>
</message> </message>
<message> <message>
<source>Enable Text &amp;Wrapping</source> <source>Enable Text &amp;Wrapping</source>
<translation>(&amp;W)</translation> <translation>(&amp;W)</translation>
</message> </message>
<message> <message>
<source>Ctrl+/</source> <source>Ctrl+/</source>
@@ -9204,7 +9204,7 @@ Will not be applied to whitespace in comments and strings.</source>
</message> </message>
<message> <message>
<source>Disabled Code</source> <source>Disabled Code</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>Code disabled by preprocessor directives.</source> <source>Code disabled by preprocessor directives.</source>
@@ -9579,7 +9579,7 @@ Will not be applied to whitespace in comments and strings.</source>
</message> </message>
<message> <message>
<source>&lt;i&gt;jom&lt;/i&gt; is a drop-in replacement for &lt;i&gt;nmake&lt;/i&gt; which distributes the compilation process to multiple CPU cores. The latest binary is available at &lt;a href=&quot;ftp://ftp.qt.nokia.com/jom/&quot;&gt;ftp://ftp.qt.nokia.com/jom/&lt;/a&gt;. Disable it if you experience problems with your builds.</source> <source>&lt;i&gt;jom&lt;/i&gt; is a drop-in replacement for &lt;i&gt;nmake&lt;/i&gt; which distributes the compilation process to multiple CPU cores. The latest binary is available at &lt;a href=&quot;ftp://ftp.qt.nokia.com/jom/&quot;&gt;ftp://ftp.qt.nokia.com/jom/&lt;/a&gt;. Disable it if you experience problems with your builds.</source>
<translation type="obsolete">&lt;i&gt;jom&lt;/i&gt; 是 &lt;i&gt;nmake&lt;/i&gt; CPU &lt;a href=&quot;ftp://ftp.qt.nokia.com/jom/&quot;&gt;ftp://ftp.qt.nokia.com/jom/&lt;/a&gt;取得。若是您的建置過程出現問題,請試著將它關閉。</translation> <translation type="obsolete">&lt;i&gt;jom&lt;/i&gt; 是 &lt;i&gt;nmake&lt;/i&gt; CPU &lt;a href=&quot;ftp://ftp.qt.nokia.com/jom/&quot;&gt;ftp://ftp.qt.nokia.com/jom/&lt;/a&gt;取得。若是您的建置過程出現問題,請試著將它停用。</translation>
</message> </message>
<message> <message>
<source>Always build project before deploying it</source> <source>Always build project before deploying it</source>
@@ -11206,7 +11206,7 @@ Reason: %2</source>
</message> </message>
<message> <message>
<source> (disabled)</source> <source> (disabled)</source>
<translation> ()</translation> <translation> ()</translation>
</message> </message>
</context> </context>
<context> <context>
@@ -14670,7 +14670,7 @@ Ids must begin with a lowercase letter.</source>
</message> </message>
<message> <message>
<source>If enabled, the toolbar will remain pinned to an absolute position.</source> <source>If enabled, the toolbar will remain pinned to an absolute position.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>Pin Qt Quick Toolbar</source> <source>Pin Qt Quick Toolbar</source>
@@ -15128,7 +15128,7 @@ GDB 允許使用 &apos;\n&apos; 來區隔多個命令序列。</translation>
</message> </message>
<message> <message>
<source>&amp;Enabled:</source> <source>&amp;Enabled:</source>
<translation>(&amp;E)</translation> <translation>(&amp;E)</translation>
</message> </message>
<message> <message>
<source>&amp;Address:</source> <source>&amp;Address:</source>
@@ -15209,7 +15209,7 @@ This feature is only available for GDB.</source>
</message> </message>
<message> <message>
<source>The CDB debug engine required for %1 is currently disabled.</source> <source>The CDB debug engine required for %1 is currently disabled.</source>
<translation type="obsolete">%1 CDB </translation> <translation type="obsolete">%1 CDB </translation>
</message> </message>
<message> <message>
<source>The CDB engine does not support start mode %1.</source> <source>The CDB engine does not support start mode %1.</source>
@@ -15471,7 +15471,7 @@ This feature is only available for GDB.</source>
</message> </message>
<message> <message>
<source>The application requires the debugger engine &apos;%1&apos;, which is disabled.</source> <source>The application requires the debugger engine &apos;%1&apos;, which is disabled.</source>
<translation type="obsolete"> &quot;%1&quot;</translation> <translation type="obsolete"> &quot;%1&quot;</translation>
</message> </message>
<message> <message>
<source>Some breakpoints cannot be handled by the debugger languages currently active, and will be ignored.</source> <source>Some breakpoints cannot be handled by the debugger languages currently active, and will be ignored.</source>
@@ -15479,7 +15479,7 @@ This feature is only available for GDB.</source>
</message> </message>
<message> <message>
<source>The debugger engine &apos;%1&apos; is disabled.</source> <source>The debugger engine &apos;%1&apos; is disabled.</source>
<translation type="obsolete"> &apos;%1&apos; </translation> <translation type="obsolete"> &apos;%1&apos; </translation>
</message> </message>
<message> <message>
<source>The debugger engine &apos;%1&apos; required for debugging binaries of the type &apos;%2&apos; is not configured correctly.</source> <source>The debugger engine &apos;%1&apos; required for debugging binaries of the type &apos;%2&apos; is not configured correctly.</source>
@@ -15619,7 +15619,7 @@ Setting breakpoints by file name and line number may fail.</source>
</message> </message>
<message> <message>
<source>Status of &apos;%1&apos; changed to &apos;enabled&apos;.</source> <source>Status of &apos;%1&apos; changed to &apos;enabled&apos;.</source>
<translation type="obsolete">&apos;%1&apos; </translation> <translation type="obsolete">&apos;%1&apos; </translation>
</message> </message>
<message> <message>
<source>Status of &apos;%1&apos; changed to &apos;not connected&apos;.</source> <source>Status of &apos;%1&apos; changed to &apos;not connected&apos;.</source>
@@ -15784,7 +15784,7 @@ instead of its installation directory when run outside git bash.</source>
</message> </message>
<message> <message>
<source>Disable</source> <source>Disable</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>Move Down</source> <source>Move Down</source>
@@ -15995,7 +15995,7 @@ instead of its installation directory when run outside git bash.</source>
</message> </message>
<message> <message>
<source>Disable Live Preview</source> <source>Disable Live Preview</source>
<translation type="obsolete"></translation> <translation type="obsolete"></translation>
</message> </message>
<message> <message>
<source>The %1 attribute at line %2, column %3 cannot be changed without reloading the QML application. </source> <source>The %1 attribute at line %2, column %3 cannot be changed without reloading the QML application. </source>
@@ -18205,11 +18205,11 @@ to version control (%2)
</message> </message>
<message> <message>
<source>Disable Breakpoint %1</source> <source>Disable Breakpoint %1</source>
<translation> %1</translation> <translation> %1</translation>
</message> </message>
<message> <message>
<source>Enable Breakpoint %1</source> <source>Enable Breakpoint %1</source>
<translation> %1</translation> <translation> %1</translation>
</message> </message>
<message> <message>
<source>Edit Breakpoint %1...</source> <source>Edit Breakpoint %1...</source>
@@ -20159,7 +20159,7 @@ a = a +
&lt;/pre&gt; &lt;/pre&gt;
&lt;/body&gt;&lt;/html&gt;</source> &lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished">&lt;html&gt;&lt;head/&gt;&lt;body&gt; <translation type="unfinished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;
=, += . , .&lt;br&gt; =, += . , .&lt;br&gt;
&lt;br&gt; &lt;br&gt;
: :
&lt;pre&gt; &lt;pre&gt;
@@ -20475,7 +20475,7 @@ With cache simulation, further event counters are enabled:
</message> </message>
<message> <message>
<source>Enable cache simulation</source> <source>Enable cache simulation</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>&lt;html&gt;&lt;head/&gt;&lt;body&gt; <source>&lt;html&gt;&lt;head/&gt;&lt;body&gt;
@@ -20487,7 +20487,7 @@ With cache simulation, further event counters are enabled:
&quot;Bi&quot;/&quot;Bim&quot;)&lt;/li&gt;&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</source> &quot;Bi&quot;/&quot;Bim&quot;)&lt;/li&gt;&lt;/ul&gt;&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished">&lt;html&gt;&lt;head/&gt;&lt;body&gt; <translation type="unfinished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;
&lt;p&gt;.&lt;/p&gt; &lt;p&gt;.&lt;/p&gt;
&lt;p&gt;: &lt;/p&gt; &lt;p&gt;: &lt;/p&gt;
&lt;ul&gt;&lt;li&gt;( &lt;ul&gt;&lt;li&gt;(
&quot;Bc&quot;/&quot;Bcm&quot;)&lt;/li&gt; &quot;Bc&quot;/&quot;Bcm&quot;)&lt;/li&gt;
&lt;li&gt;( &lt;li&gt;(
@@ -20495,7 +20495,7 @@ With cache simulation, further event counters are enabled:
</message> </message>
<message> <message>
<source>Enable branch prediction simulation</source> <source>Enable branch prediction simulation</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<source>Collect information for system call times.</source> <source>Collect information for system call times.</source>
@@ -21195,11 +21195,11 @@ Do you want to continue?</source>
</message> </message>
<message> <message>
<source>Disable profiling</source> <source>Disable profiling</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>Enable profiling</source> <source>Enable profiling</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>Could not connect to the in-process QML profiler. <source>Could not connect to the in-process QML profiler.
@@ -21992,7 +21992,7 @@ In addition, device connectivity will be tested.</source>
</message> </message>
<message> <message>
<source>Enable cycle detection to properly handle recursive or circular function calls.</source> <source>Enable cycle detection to properly handle recursive or circular function calls.</source>
<translation type="unfinished">調.</translation> <translation>調.</translation>
</message> </message>
<message> <message>
<source>This removes template parameter lists when displaying function names.</source> <source>This removes template parameter lists when displaying function names.</source>
@@ -22787,7 +22787,7 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
</message> </message>
<message> <message>
<source>Enabled</source> <source>Enabled</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>This property holds whether the item accepts mouse events.</source> <source>This property holds whether the item accepts mouse events.</source>
@@ -22795,7 +22795,7 @@ To compile QML Observer, go to the Qt Versions page, select the current Qt versi
</message> </message>
<message> <message>
<source>Hover Enabled</source> <source>Hover Enabled</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>This property holds whether hover events are handled.</source> <source>This property holds whether hover events are handled.</source>
@@ -24166,7 +24166,7 @@ Filter: %2
<name>QtC::UpdateInfo</name> <name>QtC::UpdateInfo</name>
<message> <message>
<source>Could not determine location of maintenance tool. Please check your installation if you did not enable this plugin manually.</source> <source>Could not determine location of maintenance tool. Please check your installation if you did not enable this plugin manually.</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>Could not find maintenance tool at &apos;%1&apos;. Check your installation.</source> <source>Could not find maintenance tool at &apos;%1&apos;. Check your installation.</source>
@@ -24556,7 +24556,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Enable LLDB</source> <source>Enable LLDB</source>
<translation> LLDB</translation> <translation> LLDB</translation>
</message> </message>
<message> <message>
<source>Use GDB Python dumpers</source> <source>Use GDB Python dumpers</source>
@@ -24753,7 +24753,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Enable touch optimized navigation</source> <source>Enable touch optimized navigation</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<source>Touch optimized navigation will make the HTML page flickable and enlarge the area of touch sensitive elements. If you use a JavaScript framework which optimizes the touch interaction, leave the checkbox unchecked.</source> <source>Touch optimized navigation will make the HTML page flickable and enlarge the area of touch sensitive elements. If you use a JavaScript framework which optimizes the touch interaction, leave the checkbox unchecked.</source>
@@ -24781,7 +24781,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Enable network access</source> <source>Enable network access</source>
<translation type="obsolete"></translation> <translation type="obsolete"></translation>
</message> </message>
<message> <message>
<source>Plugin&apos;s directory name:</source> <source>Plugin&apos;s directory name:</source>
@@ -24962,7 +24962,7 @@ p, li { white-space: pre-wrap; }
</message> </message>
<message> <message>
<source>Enable automatic &amp;indentation</source> <source>Enable automatic &amp;indentation</source>
<translation>(&amp;I)</translation> <translation>(&amp;I)</translation>
</message> </message>
<message> <message>
<source>Backspace indentation:</source> <source>Backspace indentation:</source>
@@ -25112,15 +25112,15 @@ Specifies how backspace interacts with indentation.
</message> </message>
<message> <message>
<source>Enable &amp;mouse navigation</source> <source>Enable &amp;mouse navigation</source>
<translation>(&amp;M)</translation> <translation>(&amp;M)</translation>
</message> </message>
<message> <message>
<source>Enable scroll &amp;wheel zooming</source> <source>Enable scroll &amp;wheel zooming</source>
<translation>(&amp;W)</translation> <translation>(&amp;W)</translation>
</message> </message>
<message> <message>
<source>Enable built-in camel case &amp;navigation</source> <source>Enable built-in camel case &amp;navigation</source>
<translation>(&amp;N)</translation> <translation>(&amp;N)</translation>
</message> </message>
<message> <message>
<source>Show help tooltips:</source> <source>Show help tooltips:</source>
@@ -25208,7 +25208,7 @@ Specifies how backspace interacts with indentation.
</message> </message>
<message> <message>
<source>Enable text &amp;wrapping</source> <source>Enable text &amp;wrapping</source>
<translation>(&amp;W)</translation> <translation>(&amp;W)</translation>
</message> </message>
<message> <message>
<source>Display right &amp;margin at column:</source> <source>Display right &amp;margin at column:</source>
@@ -26113,7 +26113,7 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message> </message>
<message> <message>
<source>Please enter the directory in which you want to build your project. Qt Creator recommends to not use the source directory for building. This ensures that the source directory remains clean and enables multiple builds with different settings.</source> <source>Please enter the directory in which you want to build your project. Qt Creator recommends to not use the source directory for building. This ensures that the source directory remains clean and enables multiple builds with different settings.</source>
<translation>Qt Creator </translation> <translation>Qt Creator </translation>
</message> </message>
<message> <message>
<source>Build Location</source> <source>Build Location</source>
@@ -26297,11 +26297,11 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message> </message>
<message> <message>
<source>Enable C++</source> <source>Enable C++</source>
<translation> C++</translation> <translation> C++</translation>
</message> </message>
<message> <message>
<source>Enable QML</source> <source>Enable QML</source>
<translation> QML</translation> <translation> QML</translation>
</message> </message>
<message> <message>
<source>Debug port:</source> <source>Debug port:</source>
@@ -28832,19 +28832,19 @@ Please choose a valid package name for your application (e.g. &quot;org.example.
</message> </message>
<message> <message>
<source>Disable Selected Breakpoints</source> <source>Disable Selected Breakpoints</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>Enable Selected Breakpoints</source> <source>Enable Selected Breakpoints</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>Disable Breakpoint</source> <source>Disable Breakpoint</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>Enable Breakpoint</source> <source>Enable Breakpoint</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<source>Add Breakpoint...</source> <source>Add Breakpoint...</source>
@@ -29777,7 +29777,7 @@ Stepping into the module or setting breakpoints by file and is expected to work.
<source>&lt;html&gt;Qt Creator has set up the following files to enable packaging: <source>&lt;html&gt;Qt Creator has set up the following files to enable packaging:
%1 %1
Do you want to add them to the project?&lt;/html&gt;</source> Do you want to add them to the project?&lt;/html&gt;</source>
<translation type="unfinished">&lt;html&gt;Qt Creator <translation type="unfinished">&lt;html&gt;Qt Creator
%1 %1
&lt;/html&gt;</translation> &lt;/html&gt;</translation>
</message> </message>
@@ -30186,7 +30186,7 @@ Qt Creator 知道一個相似的URI.</translation>
</message> </message>
<message> <message>
<source>Enabled</source> <source>Enabled</source>
<translation type="unfinished"></translation> <translation></translation>
</message> </message>
<message> <message>
<source>&lt;b&gt;Deploy packages&lt;/b&gt;</source> <source>&lt;b&gt;Deploy packages&lt;/b&gt;</source>

View File

@@ -230,9 +230,14 @@ ToolChainList AndroidToolChainFactory::autodetectToolChainsFromNdks(
atc->setPlatformCodeGenFlags({"-target", target}); atc->setPlatformCodeGenFlags({"-target", target});
atc->setPlatformLinkerFlags({"-target", target}); atc->setPlatformLinkerFlags({"-target", target});
atc->setDisplayName(displayName); atc->setDisplayName(displayName);
atc->resetToolChain(compilerCommand);
tc = atc; tc = atc;
} }
// Do not only reset newly created toolchains. This triggers call to
// addToEnvironment, so that e.g. JAVA_HOME gets updated.
if (auto gccTc = dynamic_cast<GccToolChain*>(tc))
gccTc->resetToolChain(compilerCommand);
tc->setDetection(ToolChain::AutoDetection); tc->setDetection(ToolChain::AutoDetection);
result << tc; result << tc;
++targetItr; ++targetItr;

View File

@@ -7,6 +7,7 @@ add_qtc_plugin(AutotoolsProjectManager
autotoolsbuildconfiguration.cpp autotoolsbuildconfiguration.h autotoolsbuildconfiguration.cpp autotoolsbuildconfiguration.h
autotoolsbuildsystem.cpp autotoolsbuildsystem.h autotoolsbuildsystem.cpp autotoolsbuildsystem.h
autotoolsprojectconstants.h autotoolsprojectconstants.h
autotoolsprojectmanagertr.h
autotoolsprojectplugin.cpp autotoolsprojectplugin.h autotoolsprojectplugin.cpp autotoolsprojectplugin.h
configurestep.cpp configurestep.h configurestep.cpp configurestep.h
makefileparser.cpp makefileparser.h makefileparser.cpp makefileparser.h

View File

@@ -10,6 +10,7 @@ add_qtc_plugin(BareMetal
baremetaldeviceconfigurationwizardpages.cpp baremetaldeviceconfigurationwizardpages.h baremetaldeviceconfigurationwizardpages.cpp baremetaldeviceconfigurationwizardpages.h
baremetalplugin.cpp baremetalplugin.h baremetalplugin.cpp baremetalplugin.h
baremetalrunconfiguration.cpp baremetalrunconfiguration.h baremetalrunconfiguration.cpp baremetalrunconfiguration.h
baremetaltr.h
debugserverproviderchooser.cpp debugserverproviderchooser.h debugserverproviderchooser.cpp debugserverproviderchooser.h
debugserverprovidermanager.cpp debugserverprovidermanager.h debugserverprovidermanager.cpp debugserverprovidermanager.h
debugserverproviderssettingspage.cpp debugserverproviderssettingspage.h debugserverproviderssettingspage.cpp debugserverproviderssettingspage.h

View File

@@ -7,6 +7,7 @@ add_qtc_plugin(Bazaar
bazaareditor.cpp bazaareditor.h bazaareditor.cpp bazaareditor.h
bazaarplugin.cpp bazaarplugin.h bazaarplugin.cpp bazaarplugin.h
bazaarsettings.cpp bazaarsettings.h bazaarsettings.cpp bazaarsettings.h
bazaartr.h
branchinfo.cpp branchinfo.h branchinfo.cpp branchinfo.h
commiteditor.cpp commiteditor.h commiteditor.cpp commiteditor.h
constants.h constants.h

View File

@@ -11,6 +11,7 @@ add_qtc_plugin(Beautifier
beautifierabstracttool.h beautifierabstracttool.h
beautifierconstants.h beautifierconstants.h
beautifierplugin.cpp beautifierplugin.h beautifierplugin.cpp beautifierplugin.h
beautifiertr.h
clangformat/clangformat.cpp clangformat/clangformat.h clangformat/clangformat.cpp clangformat/clangformat.h
clangformat/clangformatconstants.h clangformat/clangformatconstants.h
clangformat/clangformatoptionspage.cpp clangformat/clangformatoptionspage.h clangformat/clangformatoptionspage.cpp clangformat/clangformatoptionspage.h

View File

@@ -13,6 +13,7 @@ add_qtc_plugin(ClangCodeModel
clangactivationsequencecontextprocessor.cpp clangactivationsequencecontextprocessor.h clangactivationsequencecontextprocessor.cpp clangactivationsequencecontextprocessor.h
clangactivationsequenceprocessor.cpp clangactivationsequenceprocessor.h clangactivationsequenceprocessor.cpp clangactivationsequenceprocessor.h
clangcodemodelplugin.cpp clangcodemodelplugin.h clangcodemodelplugin.cpp clangcodemodelplugin.h
clangcodemodeltr.h
clangcompletioncontextanalyzer.cpp clangcompletioncontextanalyzer.h clangcompletioncontextanalyzer.cpp clangcompletioncontextanalyzer.h
clangconstants.h clangconstants.h
clangdast.cpp clangdast.h clangdast.cpp clangdast.h

View File

@@ -385,14 +385,14 @@ ClangdClient::ClangdClient(Project *project, const Utils::FilePath &jsonDbDir, c
{ {
setName(Tr::tr("clangd")); setName(Tr::tr("clangd"));
LanguageFilter langFilter; LanguageFilter langFilter;
langFilter.mimeTypes = QStringList{"text/x-chdr", "text/x-csrc", using namespace CppEditor::Constants;
"text/x-c++hdr", "text/x-c++src", "text/x-objc++src", "text/x-objcsrc"}; langFilter.mimeTypes = QStringList{C_HEADER_MIMETYPE, C_SOURCE_MIMETYPE,
CPP_HEADER_MIMETYPE, CPP_SOURCE_MIMETYPE, OBJECTIVE_CPP_SOURCE_MIMETYPE,
OBJECTIVE_C_SOURCE_MIMETYPE, CUDA_SOURCE_MIMETYPE};
setSupportedLanguage(langFilter); setSupportedLanguage(langFilter);
setActivateDocumentAutomatically(true); setActivateDocumentAutomatically(true);
setCompletionAssistProvider(new ClangdCompletionAssistProvider(this)); setCompletionAssistProvider(new ClangdCompletionAssistProvider(this));
setQuickFixAssistProvider(new ClangdQuickFixProvider(this)); setQuickFixAssistProvider(new ClangdQuickFixProvider(this));
symbolSupport().setDefaultRenamingSymbolMapper(
[](const QString &oldSymbol) { return oldSymbol + "_new"; });
symbolSupport().setLimitRenamingToProjects(true); symbolSupport().setLimitRenamingToProjects(true);
if (!project) { if (!project) {
QJsonObject initOptions; QJsonObject initOptions;
@@ -523,21 +523,56 @@ void ClangdClient::closeExtraFile(const Utils::FilePath &filePath)
SendDocUpdates::Ignore); SendDocUpdates::Ignore);
} }
void ClangdClient::findUsages(TextDocument *document, const QTextCursor &cursor, void ClangdClient::findUsages(const CppEditor::CursorInEditor &cursor,
const std::optional<QString> &replacement, const std::optional<QString> &replacement,
const std::function<void()> &renameCallback) const std::function<void()> &renameCallback)
{ {
// Quick check: Are we even on anything searchable? // Quick check: Are we even on anything searchable?
const QTextCursor adjustedCursor = d->adjustedCursor(cursor, document); const QTextCursor adjustedCursor = d->adjustedCursor(cursor.cursor(), cursor.textDocument());
const QString searchTerm = d->searchTermFromCursor(adjustedCursor); const QString searchTerm = d->searchTermFromCursor(adjustedCursor);
if (searchTerm.isEmpty()) if (searchTerm.isEmpty())
return; return;
if (replacement && versionNumber() >= QVersionNumber(16) if (replacement && versionNumber() >= QVersionNumber(16)
&& Utils::qtcEnvironmentVariable("QTC_CLANGD_RENAMING") != "0") { && Utils::qtcEnvironmentVariable("QTC_CLANGD_RENAMING") != "0") {
symbolSupport().renameSymbol(document, adjustedCursor, *replacement, renameCallback,
CppEditor::preferLowerCaseFileNames()); // If we have up-to-date highlighting data, we can prevent giving clangd
return; // macros or namespaces to rename, which it can't cope with.
// TODO: Fix this upstream for macros; see https://github.com/clangd/clangd/issues/729.
bool useClangdForRenaming = true;
const auto highlightingData = d->highlightingData.constFind(cursor.textDocument());
if (highlightingData != d->highlightingData.end()
&& highlightingData->previousTokens.second == documentVersion(cursor.filePath())) {
const auto candidate = std::lower_bound(
highlightingData->previousTokens.first.cbegin(),
highlightingData->previousTokens.first.cend(),
cursor.cursor().position(),
[&cursor](const ExpandedSemanticToken &token, int pos) {
const int startPos = Utils::Text::positionInText(
cursor.textDocument()->document(), token.line, token.column);
return startPos + token.length < pos;
});
if (candidate != highlightingData->previousTokens.first.cend()) {
const int startPos = Utils::Text::positionInText(
cursor.textDocument()->document(), candidate->line, candidate->column);
if (startPos <= cursor.cursor().position()) {
if (candidate->type == "namespace") {
CppEditor::CppModelManager::globalRename(
cursor, *replacement, renameCallback,
CppEditor::CppModelManager::Backend::Builtin);
return;
}
if (candidate->type == "macro")
useClangdForRenaming = false;
}
}
}
if (useClangdForRenaming) {
symbolSupport().renameSymbol(cursor.textDocument(), adjustedCursor, *replacement,
renameCallback, CppEditor::preferLowerCaseFileNames());
return;
}
} }
const bool categorize = CppEditor::codeModelSettings()->categorizeFindReferences(); const bool categorize = CppEditor::codeModelSettings()->categorizeFindReferences();
@@ -546,14 +581,15 @@ void ClangdClient::findUsages(TextDocument *document, const QTextCursor &cursor,
if (searchTerm != "operator" && Utils::allOf(searchTerm, [](const QChar &c) { if (searchTerm != "operator" && Utils::allOf(searchTerm, [](const QChar &c) {
return c.isLetterOrNumber() || c == '_'; return c.isLetterOrNumber() || c == '_';
})) { })) {
d->findUsages(document, adjustedCursor, searchTerm, replacement, renameCallback, categorize); d->findUsages(cursor.textDocument(), adjustedCursor, searchTerm, replacement,
renameCallback, categorize);
return; return;
} }
// Otherwise get the proper spelling of the search term from clang, so we can put it into the // Otherwise get the proper spelling of the search term from clang, so we can put it into the
// search widget. // search widget.
const auto symbolInfoHandler = [this, doc = QPointer(document), adjustedCursor, replacement, const auto symbolInfoHandler = [this, doc = QPointer(cursor.textDocument()), adjustedCursor,
renameCallback, categorize] replacement, renameCallback, categorize]
(const QString &name, const QString &, const MessageId &) { (const QString &name, const QString &, const MessageId &) {
if (!doc) if (!doc)
return; return;
@@ -561,7 +597,8 @@ void ClangdClient::findUsages(TextDocument *document, const QTextCursor &cursor,
return; return;
d->findUsages(doc.data(), adjustedCursor, name, replacement, renameCallback, categorize); d->findUsages(doc.data(), adjustedCursor, name, replacement, renameCallback, categorize);
}; };
requestSymbolInfo(document->filePath(), Range(adjustedCursor).start(), symbolInfoHandler); requestSymbolInfo(cursor.textDocument()->filePath(), Range(adjustedCursor).start(),
symbolInfoHandler);
} }
void ClangdClient::checkUnused(const Utils::Link &link, Core::SearchResult *search, void ClangdClient::checkUnused(const Utils::Link &link, Core::SearchResult *search,
@@ -1053,9 +1090,8 @@ void ClangdClient::gatherHelpItemForTooltip(const HoverRequest::Response &hoverR
QString cleanString = markupString; QString cleanString = markupString;
cleanString.remove('`'); cleanString.remove('`');
const QStringList lines = cleanString.trimmed().split('\n'); const QStringList lines = cleanString.trimmed().split('\n');
if (!lines.isEmpty()) { for (const QString &line : lines) {
const auto markupFilePath = Utils::FilePath::fromUserInput( const auto markupFilePath = Utils::FilePath::fromUserInput(line.simplified());
lines.last().simplified());
if (markupFilePath.exists()) { if (markupFilePath.exists()) {
d->setHelpItemForTooltip(hoverResponse.id(), d->setHelpItemForTooltip(hoverResponse.id(),
filePath, filePath,

View File

@@ -53,7 +53,7 @@ public:
void openExtraFile(const Utils::FilePath &filePath, const QString &content = {}); void openExtraFile(const Utils::FilePath &filePath, const QString &content = {});
void closeExtraFile(const Utils::FilePath &filePath); void closeExtraFile(const Utils::FilePath &filePath);
void findUsages(TextEditor::TextDocument *document, const QTextCursor &cursor, void findUsages(const CppEditor::CursorInEditor &cursor,
const std::optional<QString> &replacement, const std::optional<QString> &replacement,
const std::function<void()> &renameCallback); const std::function<void()> &renameCallback);
void checkUnused(const Utils::Link &link, Core::SearchResult *search, void checkUnused(const Utils::Link &link, Core::SearchResult *search,

View File

@@ -319,7 +319,7 @@ void ClangModelManagerSupport::globalRename(const CursorInEditor &cursor,
client && client->isFullyIndexed()) { client && client->isFullyIndexed()) {
QTC_ASSERT(client->documentOpen(cursor.textDocument()), QTC_ASSERT(client->documentOpen(cursor.textDocument()),
client->openDocument(cursor.textDocument())); client->openDocument(cursor.textDocument()));
client->findUsages(cursor.textDocument(), cursor.cursor(), replacement, callback); client->findUsages(cursor, replacement, callback);
return; return;
} }
CppModelManager::globalRename(cursor, replacement, callback, CppModelManager::Backend::Builtin); CppModelManager::globalRename(cursor, replacement, callback, CppModelManager::Backend::Builtin);
@@ -331,8 +331,7 @@ void ClangModelManagerSupport::findUsages(const CursorInEditor &cursor) const
client && client->isFullyIndexed()) { client && client->isFullyIndexed()) {
QTC_ASSERT(client->documentOpen(cursor.textDocument()), QTC_ASSERT(client->documentOpen(cursor.textDocument()),
client->openDocument(cursor.textDocument())); client->openDocument(cursor.textDocument()));
client->findUsages(cursor.textDocument(), cursor.cursor(), {}, {}); client->findUsages(cursor, {}, {});
return; return;
} }
CppModelManager::findUsages(cursor, CppModelManager::Backend::Builtin); CppModelManager::findUsages(cursor, CppModelManager::Backend::Builtin);

View File

@@ -314,7 +314,7 @@ void ClangdTestFindReferences::test()
QVERIFY(doc); QVERIFY(doc);
QTextCursor cursor(doc->document()); QTextCursor cursor(doc->document());
cursor.setPosition(pos); cursor.setPosition(pos);
client()->findUsages(doc, cursor, {}, {}); client()->findUsages(CppEditor::CursorInEditor(cursor, doc->filePath(), nullptr, doc), {}, {});
QVERIFY(waitForSignalOrTimeout(client(), &ClangdClient::findUsagesDone, timeOutInMs())); QVERIFY(waitForSignalOrTimeout(client(), &ClangdClient::findUsagesDone, timeOutInMs()));
QCOMPARE(m_actualResults.size(), expectedResults.size()); QCOMPARE(m_actualResults.size(), expectedResults.size());

View File

@@ -12,6 +12,7 @@ add_qtc_plugin(ClangFormat
clangformatindenter.cpp clangformatindenter.h clangformatindenter.cpp clangformatindenter.h
clangformatplugin.cpp clangformatplugin.h clangformatplugin.cpp clangformatplugin.h
clangformatsettings.cpp clangformatsettings.h clangformatsettings.cpp clangformatsettings.h
clangformattr.h
clangformatutils.cpp clangformatutils.h clangformatutils.cpp clangformatutils.h
EXPLICIT_MOC EXPLICIT_MOC
clangformatconfigwidget.cpp clangformatconfigwidget.h clangformatconfigwidget.cpp clangformatconfigwidget.h

View File

@@ -89,7 +89,8 @@ ClangFormatConfigWidget::ClangFormatConfigWidget(TextEditor::ICodeStylePreferenc
d->checksScrollArea->setWidget(d->checksWidget); d->checksScrollArea->setWidget(d->checksWidget);
d->checksScrollArea->setWidgetResizable(true); d->checksScrollArea->setWidgetResizable(true);
d->checksWidget->setEnabled(!codeStyle->isReadOnly()); d->checksWidget->setEnabled(!codeStyle->isReadOnly()
&& !codeStyle->isTemporarilyReadOnly());
FilePath fileName; FilePath fileName;
if (d->project) if (d->project)
@@ -140,7 +141,8 @@ void ClangFormatConfigWidget::slotCodeStyleChanged(
d->config->setIsReadOnly(codeStyle->isReadOnly()); d->config->setIsReadOnly(codeStyle->isReadOnly());
d->style = d->config->style(); d->style = d->config->style();
d->checksWidget->setEnabled(!codeStyle->isReadOnly()); d->checksWidget->setEnabled(!codeStyle->isReadOnly()
&& !codeStyle->isTemporarilyReadOnly());
fillTable(); fillTable();
updatePreview(); updatePreview();

View File

@@ -9,6 +9,7 @@
#include "clangformatutils.h" #include "clangformatutils.h"
#include <projectexplorer/project.h> #include <projectexplorer/project.h>
#include <texteditor/icodestylepreferences.h>
#include <utils/layoutbuilder.h> #include <utils/layoutbuilder.h>
@@ -24,10 +25,11 @@ using namespace Utils;
namespace ClangFormat { namespace ClangFormat {
ClangFormatGlobalConfigWidget::ClangFormatGlobalConfigWidget(ProjectExplorer::Project *project, ClangFormatGlobalConfigWidget::ClangFormatGlobalConfigWidget(
QWidget *parent) TextEditor::ICodeStylePreferences *codeStyle, ProjectExplorer::Project *project, QWidget *parent)
: CppCodeStyleWidget(parent) : CppCodeStyleWidget(parent)
, m_project(project) , m_project(project)
, m_codeStyle(codeStyle)
{ {
resize(489, 305); resize(489, 305);
@@ -171,10 +173,19 @@ void ClangFormatGlobalConfigWidget::initOverrideCheckBox()
".clang-format file.")); ".clang-format file."));
m_overrideDefault->setChecked(getProjectOverriddenSettings(m_project)); m_overrideDefault->setChecked(getProjectOverriddenSettings(m_project));
m_codeStyle->currentPreferences()->setTemporarilyReadOnly(!m_overrideDefault->isChecked());
connect(m_overrideDefault, &QCheckBox::toggled, this, [this](bool checked) { connect(m_overrideDefault, &QCheckBox::toggled, this, [this](bool checked) {
if (m_project) if (m_project)
m_project->setNamedSettings(Constants::OVERRIDE_FILE_ID, checked); m_project->setNamedSettings(Constants::OVERRIDE_FILE_ID, checked);
else {
m_codeStyle->currentPreferences()->setTemporarilyReadOnly(!checked);
emit m_codeStyle->currentPreferencesChanged(m_codeStyle->currentPreferences());
}
});
connect(m_codeStyle, &TextEditor::ICodeStylePreferences::currentPreferencesChanged, this, [this] {
m_codeStyle->currentPreferences()->setTemporarilyReadOnly(!m_overrideDefault->isChecked());
}); });
} }

View File

@@ -14,6 +14,7 @@ class QLabel;
QT_END_NAMESPACE QT_END_NAMESPACE
namespace ProjectExplorer { class Project; } namespace ProjectExplorer { class Project; }
namespace TextEditor { class ICodeStylePreferences; }
namespace ClangFormat { namespace ClangFormat {
@@ -22,7 +23,8 @@ class ClangFormatGlobalConfigWidget : public CppEditor::CppCodeStyleWidget
Q_OBJECT Q_OBJECT
public: public:
explicit ClangFormatGlobalConfigWidget(ProjectExplorer::Project *project = nullptr, explicit ClangFormatGlobalConfigWidget(TextEditor::ICodeStylePreferences *codeStyle,
ProjectExplorer::Project *project = nullptr,
QWidget *parent = nullptr); QWidget *parent = nullptr);
~ClangFormatGlobalConfigWidget() override; ~ClangFormatGlobalConfigWidget() override;
void apply() override; void apply() override;
@@ -36,6 +38,7 @@ private:
bool projectClangFormatFileExists(); bool projectClangFormatFileExists();
ProjectExplorer::Project *m_project; ProjectExplorer::Project *m_project;
TextEditor::ICodeStylePreferences *m_codeStyle;
QLabel *m_projectHasClangFormat; QLabel *m_projectHasClangFormat;
QLabel *m_formattingModeLabel; QLabel *m_formattingModeLabel;

View File

@@ -51,9 +51,9 @@ public:
} }
CodeStyleEditorWidget *createAdditionalGlobalSettings( CodeStyleEditorWidget *createAdditionalGlobalSettings(
Project *project, QWidget *parent) override ICodeStylePreferences *codeStyle, Project *project, QWidget *parent) override
{ {
return new ClangFormatGlobalConfigWidget(project, parent); return new ClangFormatGlobalConfigWidget(codeStyle, project, parent);
} }
}; };

View File

@@ -10,6 +10,7 @@ add_qtc_plugin(ClassView
classviewplugin.cpp classviewplugin.h classviewplugin.cpp classviewplugin.h
classviewsymbolinformation.cpp classviewsymbolinformation.h classviewsymbolinformation.cpp classviewsymbolinformation.h
classviewsymbollocation.cpp classviewsymbollocation.h classviewsymbollocation.cpp classviewsymbollocation.h
classviewtr.h
classviewtreeitemmodel.cpp classviewtreeitemmodel.h classviewtreeitemmodel.cpp classviewtreeitemmodel.h
classviewutils.cpp classviewutils.h classviewutils.cpp classviewutils.h
) )

View File

@@ -11,6 +11,7 @@ add_qtc_plugin(ClearCase
clearcasesubmiteditor.cpp clearcasesubmiteditor.h clearcasesubmiteditor.cpp clearcasesubmiteditor.h
clearcasesubmiteditorwidget.cpp clearcasesubmiteditorwidget.h clearcasesubmiteditorwidget.cpp clearcasesubmiteditorwidget.h
clearcasesync.cpp clearcasesync.h clearcasesync.cpp clearcasesync.h
clearcasetr.h
settingspage.cpp settingspage.h settingspage.cpp settingspage.h
versionselector.cpp versionselector.h versionselector.cpp versionselector.h
) )

View File

@@ -28,6 +28,7 @@ add_qtc_plugin(CMakeProjectManager
cmakeprojectconstants.h cmakeprojectconstants.h
cmakeprojectimporter.cpp cmakeprojectimporter.h cmakeprojectimporter.cpp cmakeprojectimporter.h
cmakeprojectmanager.cpp cmakeprojectmanager.h cmakeprojectmanager.cpp cmakeprojectmanager.h
cmakeprojectmanagertr.h
cmakeprojectnodes.cpp cmakeprojectnodes.h cmakeprojectnodes.cpp cmakeprojectnodes.h
cmakeprojectplugin.cpp cmakeprojectplugin.h cmakeprojectplugin.cpp cmakeprojectplugin.h
cmakesettingspage.cpp cmakesettingspage.h cmakesettingspage.cpp cmakesettingspage.h

View File

@@ -2,6 +2,7 @@ add_qtc_plugin(Coco
PUBLIC_DEPENDS app_version PUBLIC_DEPENDS app_version
PLUGIN_DEPENDS Core LanguageClient PLUGIN_DEPENDS Core LanguageClient
SOURCES SOURCES
cocoplugin.cpp cocoplugin.h
cocolanguageclient.cpp cocolanguageclient.h cocolanguageclient.cpp cocolanguageclient.h
cocoplugin.cpp cocoplugin.h
cocotr.h
) )

View File

@@ -5,6 +5,7 @@ add_qtc_plugin(CompilationDatabaseProjectManager
compilationdatabaseconstants.h compilationdatabaseconstants.h
compilationdatabaseproject.cpp compilationdatabaseproject.h compilationdatabaseproject.cpp compilationdatabaseproject.h
compilationdatabaseprojectmanagerplugin.cpp compilationdatabaseprojectmanagerplugin.h compilationdatabaseprojectmanagerplugin.cpp compilationdatabaseprojectmanagerplugin.h
compilationdatabaseprojectmanagertr.h
compilationdatabaseutils.cpp compilationdatabaseutils.h compilationdatabaseutils.cpp compilationdatabaseutils.h
compilationdbparser.cpp compilationdbparser.h compilationdbparser.cpp compilationdbparser.h
) )

View File

@@ -5,4 +5,5 @@ add_qtc_plugin(Conan
conaninstallstep.cpp conaninstallstep.h conaninstallstep.cpp conaninstallstep.h
conanplugin.cpp conanplugin.h conanplugin.cpp conanplugin.h
conansettings.cpp conansettings.h conansettings.cpp conansettings.h
conantr.h
) )

View File

@@ -11,6 +11,7 @@ add_qtc_plugin(CodePaster
cpasterconstants.h cpasterconstants.h
cpaster.qrc cpaster.qrc
cpasterplugin.cpp cpasterplugin.h cpasterplugin.cpp cpasterplugin.h
cpastertr.h
dpastedotcomprotocol.cpp dpastedotcomprotocol.h dpastedotcomprotocol.cpp dpastedotcomprotocol.h
fileshareprotocol.cpp fileshareprotocol.h fileshareprotocol.cpp fileshareprotocol.h
fileshareprotocolsettingspage.cpp fileshareprotocolsettingspage.h fileshareprotocolsettingspage.cpp fileshareprotocolsettingspage.h

View File

@@ -14,5 +14,6 @@ add_qtc_plugin(Cppcheck
cppchecktextmark.cpp cppchecktextmark.h cppchecktextmark.cpp cppchecktextmark.h
cppchecktextmarkmanager.cpp cppchecktextmarkmanager.h cppchecktextmarkmanager.cpp cppchecktextmarkmanager.h
cppchecktool.cpp cppchecktool.h cppchecktool.cpp cppchecktool.h
cppchecktr.h
cppchecktrigger.cpp cppchecktrigger.h cppchecktrigger.cpp cppchecktrigger.h
) )

View File

@@ -414,7 +414,7 @@ void CppCodeStylePreferencesWidget::setCodeStyleSettings(const CppCodeStyleSetti
void CppCodeStylePreferencesWidget::slotCurrentPreferencesChanged(ICodeStylePreferences *preferences, bool preview) void CppCodeStylePreferencesWidget::slotCurrentPreferencesChanged(ICodeStylePreferences *preferences, bool preview)
{ {
const bool enable = !preferences->isReadOnly(); const bool enable = !preferences->isReadOnly() && !preferences->isTemporarilyReadOnly();
for (QWidget *widget : d->m_controllers) for (QWidget *widget : d->m_controllers)
widget->setEnabled(enable); widget->setEnabled(enable);

View File

@@ -15,6 +15,7 @@ add_qtc_plugin(CtfVisualizer
ctfstatisticsview.h ctfstatisticsview.h
ctfvisualizerplugin.h ctfvisualizerplugin.h
ctfvisualizertool.h ctfvisualizertool.h
ctfvisualizertr.h
ctftimelinemodel.h ctftimelinemodel.h
ctftracemanager.h ctftracemanager.h
ctfvisualizerconstants.h ctfvisualizerconstants.h

View File

@@ -6,5 +6,6 @@ add_qtc_plugin(CVS
cvsplugin.cpp cvsplugin.h cvsplugin.cpp cvsplugin.h
cvssettings.cpp cvssettings.h cvssettings.cpp cvssettings.h
cvssubmiteditor.cpp cvssubmiteditor.h cvssubmiteditor.cpp cvssubmiteditor.h
cvstr.h
cvsutils.cpp cvsutils.h cvsutils.cpp cvsutils.h
) )

View File

@@ -16,6 +16,7 @@ add_qtc_plugin(Designer
designer_export.h designer_export.h
designerconstants.h designerconstants.h
designercontext.cpp designercontext.h designercontext.cpp designercontext.h
designertr.h
editordata.h editordata.h
editorwidget.cpp editorwidget.h editorwidget.cpp editorwidget.h
formeditorfactory.cpp formeditorfactory.h formeditorfactory.cpp formeditorfactory.h

View File

@@ -4,4 +4,5 @@ add_qtc_plugin(EmacsKeys
emacskeysconstants.h emacskeysconstants.h
emacskeysplugin.cpp emacskeysplugin.h emacskeysplugin.cpp emacskeysplugin.h
emacskeysstate.cpp emacskeysstate.h emacskeysstate.cpp emacskeysstate.h
emacskeystr.h
) )

View File

@@ -1,4 +1,3 @@
add_qtc_plugin(Fossil add_qtc_plugin(Fossil
PLUGIN_DEPENDS PLUGIN_DEPENDS
Core TextEditor ProjectExplorer VcsBase Core TextEditor ProjectExplorer VcsBase
@@ -14,6 +13,7 @@ add_qtc_plugin(Fossil
fossileditor.cpp fossileditor.h fossileditor.cpp fossileditor.h
fossilplugin.cpp fossilplugin.h fossilplugin.cpp fossilplugin.h
fossilsettings.cpp fossilsettings.h fossilsettings.cpp fossilsettings.h
fossiltr.h
pullorpushdialog.cpp pullorpushdialog.h pullorpushdialog.cpp pullorpushdialog.h
revisioninfo.h revisioninfo.h
wizard/fossiljsextension.cpp wizard/fossiljsextension.h wizard/fossiljsextension.cpp wizard/fossiljsextension.h

View File

@@ -10,6 +10,7 @@ add_qtc_plugin(GenericProjectManager
genericproject.cpp genericproject.h genericproject.cpp genericproject.h
genericprojectconstants.h genericprojectconstants.h
genericprojectfileseditor.cpp genericprojectfileseditor.h genericprojectfileseditor.cpp genericprojectfileseditor.h
genericprojectmanagertr.h
genericprojectplugin.cpp genericprojectplugin.h genericprojectplugin.cpp genericprojectplugin.h
genericprojectwizard.cpp genericprojectwizard.h genericprojectwizard.cpp genericprojectwizard.h
) )

View File

@@ -9,6 +9,7 @@ add_qtc_plugin(GitLab
gitlabparameters.cpp gitlabparameters.h gitlabparameters.cpp gitlabparameters.h
gitlabplugin.cpp gitlabplugin.h gitlabplugin.cpp gitlabplugin.h
gitlabprojectsettings.cpp gitlabprojectsettings.h gitlabprojectsettings.cpp gitlabprojectsettings.h
gitlabtr.h
queryrunner.cpp queryrunner.h queryrunner.cpp queryrunner.h
resultparser.cpp resultparser.h resultparser.cpp resultparser.h
) )

View File

@@ -9,6 +9,7 @@ add_qtc_plugin(GLSLEditor
glsleditor.qrc glsleditor.qrc
glsleditorconstants.h glsleditorconstants.h
glsleditorplugin.cpp glsleditorplugin.h glsleditorplugin.cpp glsleditorplugin.h
glsleditortr.h
glslhighlighter.cpp glslhighlighter.h glslhighlighter.cpp glslhighlighter.h
glslindenter.cpp glslindenter.h glslindenter.cpp glslindenter.h
) )

View File

@@ -13,6 +13,7 @@ add_qtc_plugin(Haskell
haskellproject.cpp haskellproject.h haskellproject.cpp haskellproject.h
haskellrunconfiguration.cpp haskellrunconfiguration.h haskellrunconfiguration.cpp haskellrunconfiguration.h
haskelltokenizer.cpp haskelltokenizer.h haskelltokenizer.cpp haskelltokenizer.h
haskelltr.h
optionspage.cpp optionspage.h optionspage.cpp optionspage.h
stackbuildstep.cpp stackbuildstep.h stackbuildstep.cpp stackbuildstep.h
) )

View File

@@ -3,5 +3,6 @@ add_qtc_plugin(HelloWorld
PLUGIN_DEPENDS Core PLUGIN_DEPENDS Core
SOURCES SOURCES
helloworldplugin.cpp helloworldplugin.h helloworldplugin.cpp helloworldplugin.h
helloworldtr.h
helloworldwindow.cpp helloworldwindow.h helloworldwindow.cpp helloworldwindow.h
) )

View File

@@ -13,6 +13,7 @@ add_qtc_plugin(Help
helpindexfilter.cpp helpindexfilter.h helpindexfilter.cpp helpindexfilter.h
helpmanager.cpp helpmanager.h helpmanager.cpp helpmanager.h
helpplugin.cpp helpplugin.h helpplugin.cpp helpplugin.h
helptr.h
helpviewer.cpp helpviewer.h helpviewer.cpp helpviewer.h
helpwidget.cpp helpwidget.h helpwidget.cpp helpwidget.h
localhelpmanager.cpp localhelpmanager.h localhelpmanager.cpp localhelpmanager.h

View File

@@ -13,6 +13,7 @@ add_qtc_plugin(ImageViewer
imageviewerconstants.h imageviewerconstants.h
imageviewerfile.cpp imageviewerfile.h imageviewerfile.cpp imageviewerfile.h
imageviewerplugin.cpp imageviewerplugin.h imageviewerplugin.cpp imageviewerplugin.h
imageviewertr.h
multiexportdialog.cpp multiexportdialog.h multiexportdialog.cpp multiexportdialog.h
EXPLICIT_MOC imageviewer.h EXPLICIT_MOC imageviewer.h
) )

View File

@@ -20,6 +20,7 @@ add_qtc_plugin(Ios
iossettingswidget.cpp iossettingswidget.h iossettingswidget.cpp iossettingswidget.h
iossimulator.cpp iossimulator.h iossimulator.cpp iossimulator.h
iostoolhandler.cpp iostoolhandler.h iostoolhandler.cpp iostoolhandler.h
iostr.h
simulatorcontrol.cpp simulatorcontrol.h simulatorcontrol.cpp simulatorcontrol.h
simulatorinfomodel.cpp simulatorinfomodel.h simulatorinfomodel.cpp simulatorinfomodel.h
simulatoroperationdialog.cpp simulatoroperationdialog.h simulatoroperationdialog.cpp simulatoroperationdialog.h

View File

@@ -549,8 +549,11 @@ void SymbolSupport::handleRenameResponse(Core::SearchResult *search,
const std::optional<PrepareRenameRequest::Response::Error> &error = response.error(); const std::optional<PrepareRenameRequest::Response::Error> &error = response.error();
QString errorMessage; QString errorMessage;
if (error.has_value()) { if (error.has_value()) {
m_client->log(*error);
errorMessage = error->toString(); errorMessage = error->toString();
if (errorMessage.contains("Cannot rename symbol: new name is the same as the old name"))
errorMessage = Tr::tr("Start typing to see replacements"); // clangd optimization
else
m_client->log(*error);
} }
const std::optional<WorkspaceEdit> &edits = response.result(); const std::optional<WorkspaceEdit> &edits = response.result();

View File

@@ -14,6 +14,7 @@ add_qtc_plugin(Macros
macrosconstants.h macrosconstants.h
macrosplugin.cpp macrosplugin.h macrosplugin.cpp macrosplugin.h
macrotextfind.cpp macrotextfind.h macrotextfind.cpp macrotextfind.h
macrostr.h
savedialog.cpp savedialog.h savedialog.cpp savedialog.h
texteditormacrohandler.cpp texteditormacrohandler.h texteditormacrohandler.cpp texteditormacrohandler.h
) )

View File

@@ -2,6 +2,7 @@ add_qtc_plugin(Marketplace
PLUGIN_DEPENDS Core PLUGIN_DEPENDS Core
SOURCES SOURCES
marketplaceplugin.h marketplaceplugin.h
marketplacetr.h
productlistmodel.cpp productlistmodel.h productlistmodel.cpp productlistmodel.h
qtmarketplacewelcomepage.cpp qtmarketplacewelcomepage.h qtmarketplacewelcomepage.cpp qtmarketplacewelcomepage.h
) )

View File

@@ -10,6 +10,7 @@ add_qtc_plugin(Mercurial
mercurialeditor.cpp mercurialeditor.h mercurialeditor.cpp mercurialeditor.h
mercurialplugin.cpp mercurialplugin.h mercurialplugin.cpp mercurialplugin.h
mercurialsettings.cpp mercurialsettings.h mercurialsettings.cpp mercurialsettings.h
mercurialtr.h
revertdialog.cpp revertdialog.h revertdialog.cpp revertdialog.h
srcdestdialog.cpp srcdestdialog.h srcdestdialog.cpp srcdestdialog.h
) )

View File

@@ -3,84 +3,85 @@ add_qtc_plugin(MesonProjectManager
DEPENDS QmlJS DEPENDS QmlJS
PLUGIN_DEPENDS Core CppEditor ProjectExplorer TextEditor QtSupport PLUGIN_DEPENDS Core CppEditor ProjectExplorer TextEditor QtSupport
SOURCES SOURCES
mesonprojectplugin.cpp
mesonprojectplugin.h
versionhelper.h
mesonactionsmanager.h
mesonactionsmanager.cpp
toolsmodel.cpp
toolssettingswidget.h
toolssettingswidget.cpp
toolssettingspage.cpp
toolssettingspage.h
toolitemsettings.cpp
toolitemsettings.h
tooltreeitem.cpp
tooltreeitem.h
toolsmodel.h
ninjatoolkitaspect.cpp
ninjatoolkitaspect.h
toolkitaspectwidget.h
toolkitaspectwidget.cpp
mesontoolkitaspect.cpp
mesontoolkitaspect.h
toolssettingsaccessor.h
toolssettingsaccessor.cpp
settings.h
settings.cpp
mesonwrapper.cpp
mesonwrapper.h
ninjawrapper.h
toolwrapper.h
toolwrapper.cpp
mesontools.h
mesontools.cpp
mesoninfoparser.h
buildoptions.h
target.h
mesoninfo.h
common.h
buildoptionsparser.h
buildsystemfilesparser.h
infoparser.h
targetparser.h
kitdata.h
kithelper.h
mesonproject.h
mesonproject.cpp
mesonprojectimporter.h
mesonprojectimporter.cpp
mesonbuildsystem.h
mesonbuildsystem.cpp
mesonprojectparser.h
mesonprojectparser.cpp
mesonbuildconfiguration.h
mesonbuildconfiguration.cpp
ninjabuildstep.h
ninjabuildstep.cpp
mesonbuildsettingswidget.h
mesonbuildsettingswidget.cpp
buildoptionsmodel.h
buildoptionsmodel.cpp
arrayoptionlineedit.cpp arrayoptionlineedit.cpp
arrayoptionlineedit.h arrayoptionlineedit.h
mesonprocess.h buildoptions.h
mesonprocess.cpp buildoptionsmodel.cpp
mesonoutputparser.h buildoptionsmodel.h
mesonoutputparser.cpp buildoptionsparser.h
ninjaparser.h buildsystemfilesparser.h
ninjaparser.cpp common.h
mesonrunconfiguration.h infoparser.h
mesonrunconfiguration.cpp kitdata.h
projecttree.h kithelper.h
projecttree.cpp
mesonprojectnodes.h
mesonprojectnodes.cpp
machinefilemanager.h
machinefilemanager.cpp machinefilemanager.cpp
nativefilegenerator.h machinefilemanager.h
mesonactionsmanager.cpp
mesonactionsmanager.h
mesonbuildconfiguration.cpp
mesonbuildconfiguration.h
mesonbuildsettingswidget.cpp
mesonbuildsettingswidget.h
mesonbuildsystem.cpp
mesonbuildsystem.h
mesoninfo.h
mesoninfoparser.h
mesonoutputparser.cpp
mesonoutputparser.h
mesonprocess.cpp
mesonprocess.h
mesonproject.cpp
mesonproject.h
mesonprojectimporter.cpp
mesonprojectimporter.h
mesonprojectmanagertr.h
mesonprojectnodes.cpp
mesonprojectnodes.h
mesonprojectparser.cpp
mesonprojectparser.h
mesonprojectplugin.cpp
mesonprojectplugin.h
mesonrunconfiguration.cpp
mesonrunconfiguration.h
mesontoolkitaspect.cpp
mesontoolkitaspect.h
mesontools.cpp
mesontools.h
mesonwrapper.cpp
mesonwrapper.h
nativefilegenerator.cpp nativefilegenerator.cpp
nativefilegenerator.h
ninjabuildstep.cpp
ninjabuildstep.h
ninjaparser.cpp
ninjaparser.h
ninjatoolkitaspect.cpp
ninjatoolkitaspect.h
ninjawrapper.h
projecttree.cpp
projecttree.h
resources_meson.qrc resources_meson.qrc
settings.cpp
settings.h
target.h
targetparser.h
toolitemsettings.cpp
toolitemsettings.h
toolkitaspectwidget.cpp
toolkitaspectwidget.h
toolsmodel.cpp
toolsmodel.h
toolssettingsaccessor.cpp
toolssettingsaccessor.h
toolssettingspage.cpp
toolssettingspage.h
toolssettingswidget.cpp
toolssettingswidget.h
tooltreeitem.cpp
tooltreeitem.h
toolwrapper.cpp
toolwrapper.h
versionhelper.h
) )
file(RELATIVE_PATH RELATIVE_TEST_PATH "${PROJECT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}") file(RELATIVE_PATH RELATIVE_TEST_PATH "${PROJECT_BINARY_DIR}" "${CMAKE_CURRENT_BINARY_DIR}")

View File

@@ -9,6 +9,7 @@ add_qtc_plugin(Nim
nim.qrc nim.qrc
nimconstants.h nimconstants.h
nimplugin.cpp nimplugin.h nimplugin.cpp nimplugin.h
nimtr.h
project/nimblebuildstep.h project/nimblebuildstep.cpp project/nimblebuildstep.h project/nimblebuildstep.cpp
project/nimbleproject.h project/nimbleproject.cpp project/nimbleproject.h project/nimbleproject.cpp
project/nimblerunconfiguration.h project/nimblerunconfiguration.cpp project/nimblerunconfiguration.h project/nimblerunconfiguration.cpp

View File

@@ -10,4 +10,5 @@ add_qtc_plugin(Perforce
perforcesettings.cpp perforcesettings.h perforcesettings.cpp perforcesettings.h
perforcesubmiteditor.cpp perforcesubmiteditor.h perforcesubmiteditor.cpp perforcesubmiteditor.h
perforcesubmiteditorwidget.cpp perforcesubmiteditorwidget.h perforcesubmiteditorwidget.cpp perforcesubmiteditorwidget.h
perforcetr.h
) )

View File

@@ -137,6 +137,7 @@ add_qtc_plugin(ProjectExplorer
projectexplorericons.cpp projectexplorericons.h projectexplorericons.cpp projectexplorericons.h
projectexplorersettings.h projectexplorersettings.h
projectexplorersettingspage.cpp projectexplorersettingspage.h projectexplorersettingspage.cpp projectexplorersettingspage.h
projectexplorertr.h
projectfilewizardextension.cpp projectfilewizardextension.h projectfilewizardextension.cpp projectfilewizardextension.h
projectimporter.cpp projectimporter.h projectimporter.cpp projectimporter.h
projectmacro.cpp projectmacro.h projectmacro.cpp projectmacro.h

View File

@@ -627,7 +627,7 @@ void LineEditField::setupCompletion(FancyLineEdit *lineEdit)
&& !isReservedName(entry.extraInfo) && !isReservedName(entry.extraInfo)
&& !entry.extraInfo.startsWith('~') && !entry.extraInfo.startsWith('~')
&& !entry.extraInfo.contains("Anonymous:") && !entry.extraInfo.contains("Anonymous:")
&& !FilePath::fromString(entry.extraInfo).isAbsolutePath(); && !FilePath::fromUserInput(entry.extraInfo).isAbsolutePath();
const bool isBaseClassCandidate = !isReservedName(entry.displayName) const bool isBaseClassCandidate = !isReservedName(entry.displayName)
&& !entry.displayName.startsWith("Anonymous:"); && !entry.displayName.startsWith("Anonymous:");
if (isBaseClassCandidate) if (isBaseClassCandidate)

View File

@@ -18,6 +18,7 @@ add_qtc_plugin(Python
pythonrunconfiguration.cpp pythonrunconfiguration.h pythonrunconfiguration.cpp pythonrunconfiguration.h
pythonscanner.cpp pythonscanner.h pythonscanner.cpp pythonscanner.h
pythonsettings.cpp pythonsettings.h pythonsettings.cpp pythonsettings.h
pythontr.h
pythonutils.cpp pythonutils.h pythonutils.cpp pythonutils.h
pythonwizardpage.cpp pythonwizardpage.h pythonwizardpage.cpp pythonwizardpage.h
) )

View File

@@ -156,20 +156,13 @@ Pip *Pip::instance(const FilePath &python)
return it.value(); return it.value();
} }
QFuture<PipPackageInfo> Pip::info(const PipPackage &package) static PipPackageInfo infoImpl(const PipPackage &package, const FilePath &python)
{
return Utils::asyncRun(&Pip::infoImpl, this, package);
}
PipPackageInfo Pip::infoImpl(const PipPackage &package)
{ {
PipPackageInfo result; PipPackageInfo result;
QtcProcess pip; QtcProcess pip;
pip.setCommand(CommandLine(m_python, {"-m", "pip", "show", "-f", package.packageName})); pip.setCommand(CommandLine(python, {"-m", "pip", "show", "-f", package.packageName}));
m_lock.lock();
pip.runBlocking(); pip.runBlocking();
m_lock.unlock();
QString fieldName; QString fieldName;
QStringList data; QStringList data;
const QString pipOutput = pip.allOutput(); const QString pipOutput = pip.allOutput();
@@ -193,6 +186,11 @@ PipPackageInfo Pip::infoImpl(const PipPackage &package)
return result; return result;
} }
QFuture<PipPackageInfo> Pip::info(const PipPackage &package)
{
return Utils::asyncRun(infoImpl, package, m_python);
}
Pip::Pip(const Utils::FilePath &python) Pip::Pip(const Utils::FilePath &python)
: QObject(PythonPlugin::instance()) : QObject(PythonPlugin::instance())
, m_python(python) , m_python(python)

View File

@@ -55,9 +55,6 @@ public:
private: private:
Pip(const Utils::FilePath &python); Pip(const Utils::FilePath &python);
PipPackageInfo infoImpl(const PipPackage &package);
QMutex m_lock;
Utils::FilePath m_python; Utils::FilePath m_python;
}; };

View File

@@ -18,9 +18,11 @@
#include <projectexplorer/taskhub.h> #include <projectexplorer/taskhub.h>
#include <utils/fsengine/fileiconprovider.h> #include <utils/fsengine/fileiconprovider.h>
#include <utils/futuresynchronizer.h>
#include <utils/theme/theme.h> #include <utils/theme/theme.h>
using namespace ProjectExplorer; using namespace ProjectExplorer;
using namespace Utils;
namespace Python::Internal { namespace Python::Internal {
@@ -36,6 +38,7 @@ public:
PySideBuildConfigurationFactory buildConfigFactory; PySideBuildConfigurationFactory buildConfigFactory;
SimpleTargetRunnerFactory runWorkerFactory{{runConfigFactory.runConfigurationId()}}; SimpleTargetRunnerFactory runWorkerFactory{{runConfigFactory.runConfigurationId()}};
PythonSettings settings; PythonSettings settings;
FutureSynchronizer m_futureSynchronizer;
}; };
PythonPlugin::PythonPlugin() PythonPlugin::PythonPlugin()
@@ -54,6 +57,12 @@ PythonPlugin *PythonPlugin::instance()
return m_instance; return m_instance;
} }
FutureSynchronizer *PythonPlugin::futureSynchronizer()
{
QTC_ASSERT(m_instance, return nullptr);
return &m_instance->d->m_futureSynchronizer;
}
void PythonPlugin::initialize() void PythonPlugin::initialize()
{ {
d = new PythonPluginPrivate; d = new PythonPluginPrivate;
@@ -66,9 +75,9 @@ void PythonPlugin::initialize()
void PythonPlugin::extensionsInitialized() void PythonPlugin::extensionsInitialized()
{ {
// Add MIME overlay icons (these icons displayed at Project dock panel) // Add MIME overlay icons (these icons displayed at Project dock panel)
QString imageFile = Utils::creatorTheme()->imageFile(Utils::Theme::IconOverlayPro, const QString imageFile = Utils::creatorTheme()->imageFile(Theme::IconOverlayPro,
::Constants::FILEOVERLAY_PY); ::Constants::FILEOVERLAY_PY);
Utils::FileIconProvider::registerIconOverlayForSuffix(imageFile, "py"); FileIconProvider::registerIconOverlayForSuffix(imageFile, "py");
TaskHub::addCategory(PythonErrorTaskCategory, "Python", true); TaskHub::addCategory(PythonErrorTaskCategory, "Python", true);
} }

View File

@@ -5,6 +5,8 @@
#include <extensionsystem/iplugin.h> #include <extensionsystem/iplugin.h>
namespace Utils { class FutureSynchronizer; }
namespace Python::Internal { namespace Python::Internal {
class PythonPlugin final : public ExtensionSystem::IPlugin class PythonPlugin final : public ExtensionSystem::IPlugin
@@ -17,6 +19,7 @@ public:
~PythonPlugin() final; ~PythonPlugin() final;
static PythonPlugin *instance(); static PythonPlugin *instance();
static Utils::FutureSynchronizer *futureSynchronizer();
private: private:
void initialize() final; void initialize() final;

View File

@@ -9,6 +9,7 @@
#include "pysideuicextracompiler.h" #include "pysideuicextracompiler.h"
#include "pythonconstants.h" #include "pythonconstants.h"
#include "pythonlanguageclient.h" #include "pythonlanguageclient.h"
#include "pythonplugin.h"
#include "pythonproject.h" #include "pythonproject.h"
#include "pythonsettings.h" #include "pythonsettings.h"
#include "pythontr.h" #include "pythontr.h"
@@ -31,6 +32,7 @@
#include <utils/aspects.h> #include <utils/aspects.h>
#include <utils/fileutils.h> #include <utils/fileutils.h>
#include <utils/futuresynchronizer.h>
#include <utils/layoutbuilder.h> #include <utils/layoutbuilder.h>
#include <utils/outputformatter.h> #include <utils/outputformatter.h>
#include <utils/theme/theme.h> #include <utils/theme/theme.h>
@@ -241,15 +243,12 @@ void PythonRunConfigurationPrivate::checkForPySide(const FilePath &python,
{ {
const PipPackage package(pySidePackageName); const PipPackage package(pySidePackageName);
QObject::disconnect(m_watcherConnection); QObject::disconnect(m_watcherConnection);
m_watcherConnection = QObject::connect(&m_watcher, m_watcherConnection = QObject::connect(&m_watcher, &QFutureWatcherBase::finished, q, [=] {
&QFutureWatcher<PipPackageInfo>::finished, handlePySidePackageInfo(m_watcher.result(), python, pySidePackageName);
q, });
[=]() { const auto future = Pip::instance(python)->info(package);
handlePySidePackageInfo(m_watcher.result(), m_watcher.setFuture(future);
python, PythonPlugin::futureSynchronizer()->addFuture(future);
pySidePackageName);
});
m_watcher.setFuture(Pip::instance(python)->info(package));
} }
void PythonRunConfigurationPrivate::handlePySidePackageInfo(const PipPackageInfo &pySideInfo, void PythonRunConfigurationPrivate::handlePySidePackageInfo(const PipPackageInfo &pySideInfo,

View File

@@ -16,6 +16,7 @@ add_qtc_plugin(Qnx
qnxrunconfiguration.cpp qnxrunconfiguration.h qnxrunconfiguration.cpp qnxrunconfiguration.h
qnxsettingspage.cpp qnxsettingspage.h qnxsettingspage.cpp qnxsettingspage.h
qnxtoolchain.cpp qnxtoolchain.h qnxtoolchain.cpp qnxtoolchain.h
qnxtr.h
qnxutils.cpp qnxutils.h qnxutils.cpp qnxutils.h
qnxversionnumber.cpp qnxversionnumber.h qnxversionnumber.cpp qnxversionnumber.h
slog2inforunner.cpp slog2inforunner.h slog2inforunner.cpp slog2inforunner.h

View File

@@ -25,6 +25,7 @@ add_qtc_plugin(RemoteLinux
remotelinuxplugin.cpp remotelinuxplugin.h remotelinuxplugin.cpp remotelinuxplugin.h
remotelinuxrunconfiguration.cpp remotelinuxrunconfiguration.h remotelinuxrunconfiguration.cpp remotelinuxrunconfiguration.h
remotelinuxsignaloperation.cpp remotelinuxsignaloperation.h remotelinuxsignaloperation.cpp remotelinuxsignaloperation.h
remotelinuxtr.h
rsyncdeploystep.cpp rsyncdeploystep.h rsyncdeploystep.cpp rsyncdeploystep.h
sshkeycreationdialog.cpp sshkeycreationdialog.h sshkeycreationdialog.cpp sshkeycreationdialog.h
tarpackagecreationstep.cpp tarpackagecreationstep.h tarpackagecreationstep.cpp tarpackagecreationstep.h

View File

@@ -10,6 +10,7 @@ add_qtc_plugin(ResourceEditor
resourceeditorconstants.h resourceeditorconstants.h
resourceeditorfactory.cpp resourceeditorfactory.h resourceeditorfactory.cpp resourceeditorfactory.h
resourceeditorplugin.cpp resourceeditorplugin.h resourceeditorplugin.cpp resourceeditorplugin.h
resourceeditortr.h
resourceeditorw.cpp resourceeditorw.h resourceeditorw.cpp resourceeditorw.h
resourcenode.cpp resourcenode.h resourcenode.cpp resourcenode.h
) )

View File

@@ -10,4 +10,5 @@ add_qtc_plugin(SerialTerminal
serialterminalconstants.h serialterminalconstants.h
serialterminalplugin.cpp serialterminalplugin.h serialterminalplugin.cpp serialterminalplugin.h
serialterminalsettings.cpp serialterminalsettings.h serialterminalsettings.cpp serialterminalsettings.h
serialterminaltr.h
) )

View File

@@ -4,6 +4,7 @@ add_qtc_plugin(SilverSearcher
findinfilessilversearcher.cpp findinfilessilversearcher.h findinfilessilversearcher.cpp findinfilessilversearcher.h
silversearcheroutputparser.cpp silversearcheroutputparser.h silversearcheroutputparser.cpp silversearcheroutputparser.h
silversearcherplugin.cpp silversearcherplugin.h silversearcherplugin.cpp silversearcherplugin.h
silversearchertr.h
) )
extend_qtc_plugin(SilverSearcher CONDITION WITH_TESTS extend_qtc_plugin(SilverSearcher CONDITION WITH_TESTS

View File

@@ -8,4 +8,5 @@ add_qtc_plugin(Subversion
subversionplugin.cpp subversionplugin.h subversionplugin.cpp subversionplugin.h
subversionsettings.cpp subversionsettings.h subversionsettings.cpp subversionsettings.h
subversionsubmiteditor.cpp subversionsubmiteditor.h subversionsubmiteditor.cpp subversionsubmiteditor.h
subversiontr.h
) )

View File

@@ -31,7 +31,9 @@ CodeStyleEditor::CodeStyleEditor(ICodeStylePreferencesFactory *factory,
m_layout = new QVBoxLayout(this); m_layout = new QVBoxLayout(this);
auto selector = new CodeStyleSelectorWidget(factory, project, this); auto selector = new CodeStyleSelectorWidget(factory, project, this);
selector->setCodeStyle(codeStyle); selector->setCodeStyle(codeStyle);
m_additionalGlobalSettingsWidget = factory->createAdditionalGlobalSettings(project, parent); m_additionalGlobalSettingsWidget = factory->createAdditionalGlobalSettings(codeStyle,
project,
parent);
if (m_additionalGlobalSettingsWidget) if (m_additionalGlobalSettingsWidget)
m_layout->addWidget(m_additionalGlobalSettingsWidget); m_layout->addWidget(m_additionalGlobalSettingsWidget);

View File

@@ -24,6 +24,7 @@ public:
QByteArray m_id; QByteArray m_id;
QString m_displayName; QString m_displayName;
bool m_readOnly = false; bool m_readOnly = false;
bool m_temporarilyReadOnly = false;
QString m_settingsSuffix; QString m_settingsSuffix;
}; };
@@ -71,6 +72,16 @@ void ICodeStylePreferences::setReadOnly(bool on)
d->m_readOnly = on; d->m_readOnly = on;
} }
void ICodeStylePreferences::setTemporarilyReadOnly(bool on)
{
d->m_temporarilyReadOnly = on;
}
bool ICodeStylePreferences::isTemporarilyReadOnly() const
{
return d->m_temporarilyReadOnly;
}
void ICodeStylePreferences::setTabSettings(const TabSettings &settings) void ICodeStylePreferences::setTabSettings(const TabSettings &settings)
{ {
if (d->m_tabSettings == settings) if (d->m_tabSettings == settings)

View File

@@ -37,6 +37,9 @@ public:
bool isReadOnly() const; bool isReadOnly() const;
void setReadOnly(bool on); void setReadOnly(bool on);
bool isTemporarilyReadOnly() const;
void setTemporarilyReadOnly(bool on);
void setTabSettings(const TabSettings &settings); void setTabSettings(const TabSettings &settings);
TabSettings tabSettings() const; TabSettings tabSettings() const;
TabSettings currentTabSettings() const; TabSettings currentTabSettings() const;

View File

@@ -18,7 +18,7 @@ CodeStyleEditorWidget *ICodeStylePreferencesFactory::createCodeStyleEditor(
} }
CodeStyleEditorWidget *ICodeStylePreferencesFactory::createAdditionalGlobalSettings( CodeStyleEditorWidget *ICodeStylePreferencesFactory::createAdditionalGlobalSettings(
ProjectExplorer::Project *, QWidget *) ICodeStylePreferences *, ProjectExplorer::Project *, QWidget *)
{ {
return nullptr; return nullptr;
} }

View File

@@ -40,8 +40,10 @@ public:
virtual CodeStyleEditorWidget *createCodeStyleEditor(ICodeStylePreferences *codeStyle, virtual CodeStyleEditorWidget *createCodeStyleEditor(ICodeStylePreferences *codeStyle,
ProjectExplorer::Project *project = nullptr, ProjectExplorer::Project *project = nullptr,
QWidget *parent = nullptr); QWidget *parent = nullptr);
virtual CodeStyleEditorWidget *createAdditionalGlobalSettings( virtual CodeStyleEditorWidget *createAdditionalGlobalSettings(ICodeStylePreferences *codeStyle,
ProjectExplorer::Project *project = nullptr, QWidget *parent = nullptr); ProjectExplorer::Project *project
= nullptr,
QWidget *parent = nullptr);
virtual Utils::Id languageId() = 0; virtual Utils::Id languageId() = 0;
virtual QString displayName() = 0; virtual QString displayName() = 0;
virtual ICodeStylePreferences *createCodeStyle() const = 0; virtual ICodeStylePreferences *createCodeStyle() const = 0;

View File

@@ -115,7 +115,7 @@ public:
void setActions(const QVector<QAction *> &actions); // Takes ownership void setActions(const QVector<QAction *> &actions); // Takes ownership
void setActionsProvider(const std::function<QList<QAction *>()> &actionsProvider); // Takes ownership void setActionsProvider(const std::function<QList<QAction *>()> &actionsProvider); // Takes ownership
bool isLocationMarker() const;; bool isLocationMarker() const;
void setIsLocationMarker(bool newIsLocationMarker); void setIsLocationMarker(bool newIsLocationMarker);

View File

@@ -21,4 +21,5 @@ add_qtc_plugin(Todo
todoplugin.cpp todoplugin.h todoplugin.cpp todoplugin.h
todoplugin.qrc todoplugin.qrc
todoprojectsettingswidget.cpp todoprojectsettingswidget.h todoprojectsettingswidget.cpp todoprojectsettingswidget.h
todotr.h
) )

View File

@@ -31,6 +31,7 @@ add_qtc_plugin(Valgrind
valgrindplugin.cpp valgrindplugin.cpp
valgrindrunner.cpp valgrindrunner.h valgrindrunner.cpp valgrindrunner.h
valgrindsettings.cpp valgrindsettings.h valgrindsettings.cpp valgrindsettings.h
valgrindtr.h
xmlprotocol/announcethread.cpp xmlprotocol/announcethread.h xmlprotocol/announcethread.cpp xmlprotocol/announcethread.h
xmlprotocol/error.cpp xmlprotocol/error.h xmlprotocol/error.cpp xmlprotocol/error.h
xmlprotocol/errorlistmodel.cpp xmlprotocol/errorlistmodel.h xmlprotocol/errorlistmodel.cpp xmlprotocol/errorlistmodel.h

View File

@@ -5,4 +5,5 @@ add_qtc_plugin(Welcome
introductionwidget.cpp introductionwidget.h introductionwidget.cpp introductionwidget.h
welcome.qrc welcome.qrc
welcomeplugin.cpp welcomeplugin.cpp
welcometr.h
) )

View File

@@ -23,14 +23,17 @@ def toggleIssuesFilter(filterName, checked):
test.log("Exception while toggling filter '%s'" % filterName, test.log("Exception while toggling filter '%s'" % filterName,
"%s(%s)" % (str(t), str(v))) "%s(%s)" % (str(t), str(v)))
def getBuildIssues():
def getBuildIssues(ignoreCodeModel=True):
ensureChecked(":Qt Creator_Issues_Core::Internal::OutputPaneToggleButton") ensureChecked(":Qt Creator_Issues_Core::Internal::OutputPaneToggleButton")
model = waitForObject(":Qt Creator.Issues_QListView").model() model = waitForObject(":Qt Creator.Issues_QListView").model()
# filter out possible code model issues present inside the Issues pane if ignoreCodeModel:
toggleIssuesFilter("Clang Code Model", False) # filter out possible code model issues present inside the Issues pane
toggleIssuesFilter("Clang Code Model", False)
result = dumpBuildIssues(model) result = dumpBuildIssues(model)
# reset the filter if ignoreCodeModel:
toggleIssuesFilter("Clang Code Model", True) # reset the filter
toggleIssuesFilter("Clang Code Model", True)
return result return result
# this method checks the last build (if there's one) and logs the number of errors, warnings and # this method checks the last build (if there's one) and logs the number of errors, warnings and

View File

@@ -96,16 +96,33 @@ def getExecutableAndTargetFromToolTip(toolTip):
return None, target return None, target
return exe.group(1).strip(), target return exe.group(1).strip(), target
# treeElement is the dot-separated tree to the wanted element, e.g.
# root.first.second.leaf
def waitForProjectTreeItem(treeElement, timeoutMSec):
projectTV = ":Qt Creator_Utils::NavigationTreeView"
projItem = None
treeElementWithBranch = addBranchWildcardToRoot(treeElement)
for _ in range(__builtins__.int(timeoutMSec / 200)):
try:
projItem = waitForObjectItem(projectTV, treeElement, 100)
except:
try:
projItem = waitForObjectItem(projectTV, treeElementWithBranch, 100)
except:
pass
if projItem:
return projItem
raise LookupError("Could not find project tree element: %s or %s"
% (treeElement, treeElementWithBranch))
def invokeContextMenuOnProject(projectName, menuItem): def invokeContextMenuOnProject(projectName, menuItem):
try: try:
projItem = waitForObjectItem(":Qt Creator_Utils::NavigationTreeView", projectName, 3000) projItem = waitForProjectTreeItem(projectName, 4000)
except: except:
try: test.fatal("Failed to find root node of the project '%s'." % projectName)
projItem = waitForObjectItem(":Qt Creator_Utils::NavigationTreeView", return
addBranchWildcardToRoot(projectName), 1000)
except:
test.fatal("Failed to find root node of the project '%s'." % projectName)
return
openItemContextMenu(waitForObject(":Qt Creator_Utils::NavigationTreeView"), openItemContextMenu(waitForObject(":Qt Creator_Utils::NavigationTreeView"),
str(projItem.text).replace("_", "\\_").replace(".", "\\."), 5, 5, 0) str(projItem.text).replace("_", "\\_").replace(".", "\\."), 5, 5, 0)
activateItem(waitForObjectItem("{name='Project.Menu.Project' type='QMenu' visible='1'}", menuItem)) activateItem(waitForObjectItem("{name='Project.Menu.Project' type='QMenu' visible='1'}", menuItem))

View File

@@ -248,7 +248,9 @@ def substituteMsvcPaths(settingsDir, version, targetBitness=64):
try: try:
msvcPath = os.path.join("C:\\Program Files (x86)", "Microsoft Visual Studio", msvcPath = os.path.join("C:\\Program Files (x86)", "Microsoft Visual Studio",
version, msvcFlavor, "VC", "Tools", "MSVC") version, msvcFlavor, "VC", "Tools", "MSVC")
msvcPath = os.path.join(msvcPath, os.listdir(msvcPath)[0], "bin", hostArch, targetArch) foundVersions = os.listdir(msvcPath) # undetermined order
foundVersions.sort(reverse=True) # we explicitly want the latest and greatest
msvcPath = os.path.join(msvcPath, foundVersions[0], "bin", hostArch, targetArch)
__substitute__(os.path.join(settingsDir, "QtProject", 'qtcreator', 'toolchains.xml'), __substitute__(os.path.join(settingsDir, "QtProject", 'qtcreator', 'toolchains.xml'),
"SQUISH_MSVC%s_%d_PATH" % (version, targetBitness), msvcPath) "SQUISH_MSVC%s_%d_PATH" % (version, targetBitness), msvcPath)
return return

View File

@@ -41,15 +41,18 @@ def main():
# there should be new QML file generated with name "MyComponent.qml" # there should be new QML file generated with name "MyComponent.qml"
try: try:
# openDocument() doesn't wait for expected elements, so it might be faster than the updates # openDocument() doesn't wait for expected elements, so it might be faster than the updates
# to the tree. Explicitly wait here to avoid timing issues. Using wFOI() instead of # to the tree. Explicitly wait here to avoid timing issues. Using wFPTI() instead of
# snooze() allows to proceed earlier, just in case it can find the item. # snooze() allows to proceed earlier, just in case it can find the item.
waitForObjectItem(":Qt Creator_Utils::NavigationTreeView", waitForProjectTreeItem(myCompTE, 2000)
addBranchWildcardToRoot(myCompTE), 2000)
except: except:
pass pass
# open MyComponent.qml file for verification # open MyComponent.qml file for verification
if not test.verify(openDocument(myCompTE), docOpened = openDocument(myCompTE)
"Was MyComponent.qml properly generated in project explorer?"): if JIRA.isBugStillOpen(28985):
test.xverify(docOpened, "Was MyComponent.qml properly generated in project explorer?")
saveAndExit()
return
if not test.verify(docOpened, "Was MyComponent.qml properly generated in project explorer?"):
test.fatal("Could not open MyComponent.qml.") test.fatal("Could not open MyComponent.qml.")
saveAndExit() saveAndExit()
return return

View File

@@ -19,9 +19,6 @@ def main():
if platform.system() in ('Microsoft', 'Windows'): if platform.system() in ('Microsoft', 'Windows'):
expectConfigureToFail = [ Targets.DESKTOP_5_4_1_GCC ] # gcc 4.9 does not know C++17 expectConfigureToFail = [ Targets.DESKTOP_5_4_1_GCC ] # gcc 4.9 does not know C++17
# Qt5.10 does not default enable C++17
expectBuildToFail = [ Targets.DESKTOP_5_10_1_DEFAULT ]
for kit, config in availableConfigs: for kit, config in availableConfigs:
selectBuildConfig(kit, config) selectBuildConfig(kit, config)
test.log("Testing build configuration: " + config) test.log("Testing build configuration: " + config)

View File

@@ -99,10 +99,12 @@ def addHighlighterDefinition(*languages):
"text='Generic Highlighter'}") "text='Generic Highlighter'}")
clickOnTab(":Options.qt_tabwidget_tabbar_QTabBar", "Generic Highlighter") clickOnTab(":Options.qt_tabwidget_tabbar_QTabBar", "Generic Highlighter")
test.log("Trying to download definitions...")
clickButton("{text='Download Definitions' type='QPushButton' unnamed='1' visible='1'}") clickButton("{text='Download Definitions' type='QPushButton' unnamed='1' visible='1'}")
updateStatus = "{name='updateStatus' type='QLabel' visible='1'}" updateStatus = "{name='updateStatus' type='QLabel' visible='1'}"
waitFor("object.exists(updateStatus)", 5000) waitFor("object.exists(updateStatus)", 5000)
if waitFor('str(findObject(updateStatus).text) == "Download finished"', 5000): if waitFor('str(findObject(updateStatus).text) == "Download finished"', 20000):
test.log("Received definitions")
test.verify(os.path.exists(syntaxDirectory), test.verify(os.path.exists(syntaxDirectory),
"Directory for syntax highlighter files exists.") "Directory for syntax highlighter files exists.")
xmlFiles = glob.glob(os.path.join(syntaxDirectory, "*.xml")) xmlFiles = glob.glob(os.path.join(syntaxDirectory, "*.xml"))

View File

@@ -25,7 +25,7 @@ def __noBuildIssues__():
def __syntaxErrorDetected__(): def __syntaxErrorDetected__():
buildIssues = getBuildIssues() buildIssues = getBuildIssues(False)
for issue in buildIssues: for issue in buildIssues:
if issue[3] in ["Expected ';' after expression (fix available)", if issue[3] in ["Expected ';' after expression (fix available)",
"Expected ';' at end of declaration (fix available)", "Expected ';' at end of declaration (fix available)",

View File

@@ -78,6 +78,7 @@ def testRenameMacroAfterSourceMoving():
if not content: if not content:
return False return False
formerTexts["testfiles.Headers.testfile\\.h"] = content formerTexts["testfiles.Headers.testfile\\.h"] = content
waitForProjectTreeItem("testfiles.Headers.anothertestfile\\.h", 5000)
content = openDocumentPlaceCursor("testfiles.Headers.anothertestfile\\.h", content = openDocumentPlaceCursor("testfiles.Headers.anothertestfile\\.h",
"#define ANOTHERTESTFILE_H", __paste__) "#define ANOTHERTESTFILE_H", __paste__)
if not content: if not content:

View File

@@ -142,6 +142,10 @@ def __qtFunc__(it, foundQt, qmakePath):
def __kitFunc__(it, foundQt, foundCompNames): def __kitFunc__(it, foundQt, foundCompNames):
global currentSelectedTreeItem, warningOrError global currentSelectedTreeItem, warningOrError
qtVersionStr = str(waitForObjectExists(":Kits_QtVersion_QComboBox").currentText) qtVersionStr = str(waitForObjectExists(":Kits_QtVersion_QComboBox").currentText)
# The following may fail if Creator doesn't find a Qt version in PATH. It will then create one
# Qt-less kit for each available toolchain instead of just one default Desktop kit.
# Since Qt usually is in PATH on the test machines anyway, we consider this too much of a
# corner case to add error handling code or make Qt in PATH a hard requirement for the tests.
test.compare(it, "Desktop (default)", "Verifying whether default Desktop kit has been created.") test.compare(it, "Desktop (default)", "Verifying whether default Desktop kit has been created.")
if foundQt: if foundQt:
test.compare(qtVersionStr, foundQt, "Verifying if Qt versions match.") test.compare(qtVersionStr, foundQt, "Verifying if Qt versions match.")