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/**'
env:
QT_VERSION: 6.4.2
QT_VERSION: 6.4.3
MACOS_DEPLOYMENT_TARGET: 10.14
CLANG_VERSION: 16.0.0-rc2
CLANG_VERSION: 16.0.0
ELFUTILS_VERSION: 0.175
CMAKE_VERSION: 3.21.1
NINJA_VERSION: 1.10.2
@@ -189,11 +189,11 @@ jobs:
if ("x${{ matrix.config.environment_script }}" STREQUAL "x")
set(qt_package_arch_suffix "win64_mingw")
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")
set(qt_package_arch_suffix "win64_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()
elseif ("${{ runner.os }}" STREQUAL "Linux")
set(url_os "linux_x64")

View File

@@ -58,7 +58,7 @@ function(_create_ts_custom_target name)
set(_arg_TS_TARGET_PREFIX "ts_")
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}")
list(SORT _sources)

View File

@@ -7,10 +7,10 @@ instructions:
variableValue: "RelWithDebInfo"
- type: EnvironmentVariable
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
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
variableName: QTC_QT_MODULES
variableValue: "qt5compat qtbase qtdeclarative qtimageformats qtquick3d qtquickcontrols2 qtquicktimeline qtserialport qtshadertools qtsvg qttools qttranslations qtwebengine"
@@ -24,7 +24,7 @@ instructions:
instructions:
- type: EnvironmentVariable
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
variableName: QTC_SDKTOOL_QT_EXT
variableValue: ".zip"

View File

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

View File

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

View File

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

View File

@@ -33,4 +33,6 @@ target_link_libraries(apptransitions
install(TARGETS apptransitions
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 {
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(qbs.version, "1.23") < 0
cpp.cxxFlags: "/permissive-"

View File

@@ -8,6 +8,7 @@ from __future__ import print_function
import argparse
import collections
import os
import shlex
import shutil
import common
@@ -43,6 +44,8 @@ def get_arguments():
# signing
parser.add_argument('--keychain-unlock-script',
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
parser.add_argument('--python-path',
@@ -262,6 +265,14 @@ def zipPatternForApp(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_qtcreator:
common.check_print_call(['7z', 'a', '-mmt' + args.zip_threads,

View File

@@ -9,6 +9,7 @@ import argparse
import collections
import glob
import os
import shlex
import common
@@ -46,6 +47,9 @@ def get_arguments():
# signing
parser.add_argument('--keychain-unlock-script',
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.with_debug_info = args.build_type == 'RelWithDebInfo'
return args
@@ -140,6 +144,9 @@ def build(args, paths):
def package(args, paths):
if not os.path.exists(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'), '*'],
paths.install)
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_mode_value = 0
short_mode = False
libcxx_version = 14
layoutModeIsDSC = layoutDecider.name == '__data_'
if (layoutModeIsDSC):
@@ -200,6 +201,13 @@ def std_1_string_dumper(d, value):
if not size_mode:
raise Exception("Could not find size_mode")
if size_mode.name == '__is_long_':
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)
@@ -209,8 +217,13 @@ def std_1_string_dumper(d, value):
if not s:
raise Exception("Could not find s")
if libcxx_version == 14:
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:
l = D[0]
if not l:

View File

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

View File

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

View File

@@ -36,4 +36,6 @@ endif()
@endif
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})
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})
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}
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}
BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
if(QT_VERSION_MAJOR EQUAL 6)
qt_finalize_executable(%{ProjectName})

View File

@@ -41132,7 +41132,7 @@ The affected files are:
</message>
<message>
<source>Platform:</source>
<translation type="unfinished">Plattform:</translation>
<translation>Plattform:</translation>
</message>
<message>
<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>
<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>
<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>
<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>
<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>
<source>ABIs:</source>
@@ -41399,19 +41399,19 @@ Weder der Pfad zur Bibliothek noch der Pfad zu den Headerdateien wird zur .pro-D
</message>
<message>
<source>Run</source>
<translation type="unfinished">Ausführen</translation>
<translation>Ausführen</translation>
</message>
<message>
<source>Ignore</source>
<translation type="unfinished"></translation>
<translation>Ignorieren</translation>
</message>
<message>
<source>Use global setting</source>
<translation type="unfinished"></translation>
<translation>Globale Einstellung verwenden</translation>
</message>
<message>
<source>qmake system() behavior when parsing:</source>
<translation type="unfinished"></translation>
<translation>Verhalten von qmake system() beim Auswerten:</translation>
</message>
<message>
<source>General</source>
@@ -41482,11 +41482,11 @@ Weder der Pfad zur Bibliothek noch der Pfad zu den Headerdateien wird zur .pro-D
</message>
<message>
<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>
<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>
<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>
<source>Generate Xcode project (via qmake)</source>
<translation type="unfinished"></translation>
<translation>Xcode-Projekt generieren (mittels qmake)</translation>
</message>
<message>
<source>Generate Visual Studio project (via qmake)</source>
<translation type="unfinished"></translation>
<translation>Visual Studio-Projekt generieren (mittels qmake)</translation>
</message>
<message>
<source>qmake generator failed: %1.</source>
<translation type="unfinished"></translation>
<translation>qmake-Generator fehlgeschlagen: %1.</translation>
</message>
<message>
<source>No Qt in kit</source>
<translation type="unfinished"></translation>
<translation>Kein Qt im Kit</translation>
</message>
<message>
<source>No valid qmake executable</source>
<translation type="unfinished"></translation>
<translation>Keine gültige ausführbare qmake-Datei</translation>
</message>
<message>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<source>Run qmake on every build</source>
<translation type="unfinished"></translation>
<translation>qmake bei jedem Erstellen ausführen</translation>
</message>
<message>
<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>
<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>
<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>
<source>Qmake</source>
<translation type="unfinished"></translation>
<translation>Qmake</translation>
</message>
<message>
<source>Required Qt features not present.</source>
<translation type="unfinished"></translation>
<translation>Benötigte Qt-Funktionen sind nicht vorhanden.</translation>
</message>
<message>
<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>
<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>
</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 qmlRegister... calls, make sure that you define the Module URI as a string literal.
</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>
<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>
<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>
<source>Hit maximal recursion depth in AST visit.</source>
<translation type="unfinished"></translation>
<translation>Maximale Rekursionstiefe beim Durchlaufen des Syntaxbaums erreicht.</translation>
</message>
<message>
<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>
<source>Nested inline components are not supported</source>
<translation type="unfinished"></translation>
<translation>Verschachtelte Inline-Komponenten werden nicht unterstützt</translation>
</message>
<message>
<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>
<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>
<source>Expected array of numbers after colon.</source>
@@ -42278,87 +42288,87 @@ Weitere Informationen finden Sie auf der Dokumentationsseite &quot;Checking Code
</message>
<message>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<source>Type cannot be instantiated recursively (%1).</source>
<translation type="unfinished"></translation>
<translation>Typ kann nicht rekursiv instanziiert werden (%1).</translation>
</message>
<message>
<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>
<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>
<source>Components require a child element.</source>
<translation type="unfinished"></translation>
<translation>Komponenten müssen ein Kindelement besitzen.</translation>
</message>
<message>
<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>
<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>
<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>
<source>Minimum number value is %1.</source>
<translation>Minimalwert ist %1.
</translation>
<translation>Minimalwert ist %1.</translation>
</message>
<message>
<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.
Errors:
%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:
%1</translation>
</message>
@@ -42506,12 +42515,16 @@ First 10 lines or errors:
%1
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>
<source>Warnings while parsing QML type information of %1:
%2</source>
<translation>Warnungen beim Auswerten der QML-Typinformation von %1:
<translation>Warnungen beim Auswerten der QML-Typinformationen von %1:
%2</translation>
</message>
<message>
@@ -42556,25 +42569,27 @@ Bitte erstellen Sie die Anwendung qmldump auf der Einstellungsseite der Qt-Versi
</message>
<message>
<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>
<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
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>
<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>
<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>
<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>
</context>
<context>
@@ -42626,7 +42641,7 @@ the QML editor know about a likely URI.</source>
</message>
<message>
<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>
<source>Property assignments for %1:</source>
@@ -42642,15 +42657,15 @@ the QML editor know about a likely URI.</source>
</message>
<message>
<source>Invalid component name.</source>
<translation type="unfinished"></translation>
<translation>Ungültiger Komponentenname.</translation>
</message>
<message>
<source>Invalid path.</source>
<translation type="unfinished"></translation>
<translation>Ungültiger Pfad.</translation>
</message>
<message>
<source>Component already exists.</source>
<translation type="unfinished">Komponente existiert bereits.</translation>
<translation>Komponente existiert bereits.</translation>
</message>
<message>
<source>Component Name</source>
@@ -42706,15 +42721,15 @@ the QML editor know about a likely URI.</source>
</message>
<message>
<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>
<source>Command:</source>
<translation type="unfinished"></translation>
<translation>Kommando:</translation>
</message>
<message>
<source>Arguments:</source>
<translation type="unfinished">Argumente:</translation>
<translation>Argumente:</translation>
</message>
<message>
<source>Always show Qt Quick Toolbar</source>
@@ -42722,23 +42737,23 @@ the QML editor know about a likely URI.</source>
</message>
<message>
<source>Always Ask</source>
<translation type="unfinished">Stets fragen</translation>
<translation>Stets fragen</translation>
</message>
<message>
<source>Qt Design Studio</source>
<translation type="unfinished">Qt Design Studio</translation>
<translation>Qt Design Studio</translation>
</message>
<message>
<source>Qt Creator</source>
<translation type="unfinished"></translation>
<translation>Qt Creator</translation>
</message>
<message>
<source>Use qmlls (EXPERIMENTAL!)</source>
<translation type="unfinished"></translation>
<translation>qmlls benutzen (EXPERIMENTELL!)</translation>
</message>
<message>
<source>Always use latest qmlls</source>
<translation type="unfinished"></translation>
<translation>Stets das neueste qmlls benutzen</translation>
</message>
<message>
<source>Automatic Formatting on File Save</source>
@@ -42746,11 +42761,11 @@ the QML editor know about a likely URI.</source>
</message>
<message>
<source>Open .ui.qml files with:</source>
<translation type="unfinished"></translation>
<translation>.ui.qml-Dateien öffnen mit:</translation>
</message>
<message>
<source>Language Server</source>
<translation type="unfinished"></translation>
<translation>Language Server</translation>
</message>
<message>
<source>Enable auto format on file save</source>
@@ -42810,19 +42825,19 @@ the QML editor know about a likely URI.</source>
</message>
<message>
<source>Library at %1</source>
<translation type="unfinished">Bibliothek bei %1</translation>
<translation>Bibliothek bei %1</translation>
</message>
<message>
<source>Dumped plugins successfully.</source>
<translation type="unfinished">Plugin-Information erfolgreich bestimmt.</translation>
<translation>Plugin-Information erfolgreich bestimmt.</translation>
</message>
<message>
<source>Read typeinfo files successfully.</source>
<translation type="unfinished">typeinfo-Dateien gelesen.</translation>
<translation>typeinfo-Dateien erfolgreich gelesen.</translation>
</message>
<message>
<source>Qmlls (%1)</source>
<translation type="unfinished"></translation>
<translation>Qmlls (%1)</translation>
</message>
</context>
<context>
@@ -42857,16 +42872,16 @@ the QML editor know about a likely URI.</source>
</message>
<message>
<source>Qml JS Code Style</source>
<translation type="unfinished"></translation>
<translation>QML JS Coding Style</translation>
</message>
<message>
<source>&amp;Line length:</source>
<translation type="unfinished"></translation>
<translation>&amp;Zeilenlänge:</translation>
</message>
<message>
<source>Global</source>
<comment>Settings</comment>
<translation type="unfinished">Global</translation>
<translation>Global</translation>
</message>
</context>
<context>
@@ -48403,7 +48418,7 @@ Gibt an, wie sich die Rücktaste bezüglich Einrückung verhält.
</message>
<message>
<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>
<source>Using Select Block Up / Down actions will now provide smarter selections.</source>

View File

@@ -323,7 +323,7 @@
</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>
<translation>Qt Creator </translation>
<translation>Qt Creator </translation>
</message>
</context>
<context>
@@ -1740,7 +1740,7 @@
</message>
<message>
<source>Enable Doxygen blocks</source>
<translation> Doxygen </translation>
<translation> Doxygen </translation>
</message>
<message>
<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>
<source>Enabled</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>Disabled</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>, pending</source>
@@ -2340,7 +2340,7 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
</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>
<translation> 使</translation>
<translation> 使</translation>
</message>
<message>
<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>
<source>Enable Reverse Debugging</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>Register For Post-Mortem Debugging</source>
@@ -2384,7 +2384,7 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
</message>
<message>
<source>Checking this will enable tooltips in the locals view during debugging.</source>
<translation>使</translation>
<translation></translation>
</message>
<message>
<source>Break on &quot;abort&quot;</source>
@@ -2400,7 +2400,7 @@ For more details, see/etc/sysctl.d/10-ptrace.conf
</message>
<message>
<source>Checking this will enable tooltips in the breakpoints view during debugging.</source>
<translation>使</translation>
<translation></translation>
</message>
<message>
<source>Show Address Data in Breakpoints View when Debugging</source>
@@ -3060,11 +3060,11 @@ at debugger startup.</source>
</message>
<message>
<source>Enable reverse debugging</source>
<translation></translation>
<translation></translation>
</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>
<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>
<source>Additional Startup Commands</source>
@@ -6262,7 +6262,7 @@ Add, modify, and remove document filters, which determine the documentation set
</message>
<message>
<source>Skipping disabled step %1.</source>
<translation> %1 </translation>
<translation> %1 </translation>
</message>
<message>
<source>Custom Executable</source>
@@ -7083,7 +7083,7 @@ Do you want to ignore them?</source>
</message>
<message>
<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>
<source>A build is in progress</source>
@@ -7092,7 +7092,7 @@ Do you want to ignore them?</source>
<message>
<source>Building &apos;%1&apos; is disabled: %2
</source>
<translation> &apos;%1&apos; %2
<translation> "%1"%2
</translation>
</message>
<message>
@@ -7689,7 +7689,7 @@ Preselects a desktop Qt for building the application if available.</source>
</message>
<message>
<source>Enable QML debugging:</source>
<translation> QML </translation>
<translation> QML </translation>
</message>
<message>
<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>
<source>Enable Text &amp;Wrapping</source>
<translation>(&amp;W)</translation>
<translation>(&amp;W)</translation>
</message>
<message>
<source>Ctrl+/</source>
@@ -9204,7 +9204,7 @@ Will not be applied to whitespace in comments and strings.</source>
</message>
<message>
<source>Disabled Code</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>Code disabled by preprocessor directives.</source>
@@ -9579,7 +9579,7 @@ Will not be applied to whitespace in comments and strings.</source>
</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>
<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>
<source>Always build project before deploying it</source>
@@ -11206,7 +11206,7 @@ Reason: %2</source>
</message>
<message>
<source> (disabled)</source>
<translation> ()</translation>
<translation> ()</translation>
</message>
</context>
<context>
@@ -14670,7 +14670,7 @@ Ids must begin with a lowercase letter.</source>
</message>
<message>
<source>If enabled, the toolbar will remain pinned to an absolute position.</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>Pin Qt Quick Toolbar</source>
@@ -15128,7 +15128,7 @@ GDB 允許使用 &apos;\n&apos; 來區隔多個命令序列。</translation>
</message>
<message>
<source>&amp;Enabled:</source>
<translation>(&amp;E)</translation>
<translation>(&amp;E)</translation>
</message>
<message>
<source>&amp;Address:</source>
@@ -15209,7 +15209,7 @@ This feature is only available for GDB.</source>
</message>
<message>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<source>Disable</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>Move Down</source>
@@ -15995,7 +15995,7 @@ instead of its installation directory when run outside git bash.</source>
</message>
<message>
<source>Disable Live Preview</source>
<translation type="obsolete"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<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>
<source>Disable Breakpoint %1</source>
<translation> %1</translation>
<translation> %1</translation>
</message>
<message>
<source>Enable Breakpoint %1</source>
<translation> %1</translation>
<translation> %1</translation>
</message>
<message>
<source>Edit Breakpoint %1...</source>
@@ -20159,7 +20159,7 @@ a = a +
&lt;/pre&gt;
&lt;/body&gt;&lt;/html&gt;</source>
<translation type="unfinished">&lt;html&gt;&lt;head/&gt;&lt;body&gt;
=, += . , .&lt;br&gt;
=, += . , .&lt;br&gt;
&lt;br&gt;
:
&lt;pre&gt;
@@ -20475,7 +20475,7 @@ With cache simulation, further event counters are enabled:
</message>
<message>
<source>Enable cache simulation</source>
<translation></translation>
<translation></translation>
</message>
<message>
<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>
<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;ul&gt;&lt;li&gt;(
&quot;Bc&quot;/&quot;Bcm&quot;)&lt;/li&gt;
&lt;li&gt;(
@@ -20495,7 +20495,7 @@ With cache simulation, further event counters are enabled:
</message>
<message>
<source>Enable branch prediction simulation</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>Collect information for system call times.</source>
@@ -21195,11 +21195,11 @@ Do you want to continue?</source>
</message>
<message>
<source>Disable profiling</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>Enable profiling</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>Could not connect to the in-process QML profiler.
@@ -21992,7 +21992,7 @@ In addition, device connectivity will be tested.</source>
</message>
<message>
<source>Enable cycle detection to properly handle recursive or circular function calls.</source>
<translation type="unfinished">調.</translation>
<translation>調.</translation>
</message>
<message>
<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>
<source>Enabled</source>
<translation></translation>
<translation></translation>
</message>
<message>
<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>
<source>Hover Enabled</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>This property holds whether hover events are handled.</source>
@@ -24166,7 +24166,7 @@ Filter: %2
<name>QtC::UpdateInfo</name>
<message>
<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>
<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>
<source>Enable LLDB</source>
<translation> LLDB</translation>
<translation> LLDB</translation>
</message>
<message>
<source>Use GDB Python dumpers</source>
@@ -24753,7 +24753,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Enable touch optimized navigation</source>
<translation type="unfinished"></translation>
<translation></translation>
</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>
@@ -24781,7 +24781,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Enable network access</source>
<translation type="obsolete"></translation>
<translation type="obsolete"></translation>
</message>
<message>
<source>Plugin&apos;s directory name:</source>
@@ -24962,7 +24962,7 @@ p, li { white-space: pre-wrap; }
</message>
<message>
<source>Enable automatic &amp;indentation</source>
<translation>(&amp;I)</translation>
<translation>(&amp;I)</translation>
</message>
<message>
<source>Backspace indentation:</source>
@@ -25112,15 +25112,15 @@ Specifies how backspace interacts with indentation.
</message>
<message>
<source>Enable &amp;mouse navigation</source>
<translation>(&amp;M)</translation>
<translation>(&amp;M)</translation>
</message>
<message>
<source>Enable scroll &amp;wheel zooming</source>
<translation>(&amp;W)</translation>
<translation>(&amp;W)</translation>
</message>
<message>
<source>Enable built-in camel case &amp;navigation</source>
<translation>(&amp;N)</translation>
<translation>(&amp;N)</translation>
</message>
<message>
<source>Show help tooltips:</source>
@@ -25208,7 +25208,7 @@ Specifies how backspace interacts with indentation.
</message>
<message>
<source>Enable text &amp;wrapping</source>
<translation>(&amp;W)</translation>
<translation>(&amp;W)</translation>
</message>
<message>
<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>
<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>
<source>Build Location</source>
@@ -26297,11 +26297,11 @@ should a repository require SSH-authentication (see documentation on SSH and the
</message>
<message>
<source>Enable C++</source>
<translation> C++</translation>
<translation> C++</translation>
</message>
<message>
<source>Enable QML</source>
<translation> QML</translation>
<translation> QML</translation>
</message>
<message>
<source>Debug port:</source>
@@ -28832,19 +28832,19 @@ Please choose a valid package name for your application (e.g. &quot;org.example.
</message>
<message>
<source>Disable Selected Breakpoints</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>Enable Selected Breakpoints</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>Disable Breakpoint</source>
<translation></translation>
<translation></translation>
</message>
<message>
<source>Enable Breakpoint</source>
<translation></translation>
<translation></translation>
</message>
<message>
<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:
%1
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
&lt;/html&gt;</translation>
</message>
@@ -30186,7 +30186,7 @@ Qt Creator 知道一個相似的URI.</translation>
</message>
<message>
<source>Enabled</source>
<translation type="unfinished"></translation>
<translation></translation>
</message>
<message>
<source>&lt;b&gt;Deploy packages&lt;/b&gt;</source>

View File

@@ -230,9 +230,14 @@ ToolChainList AndroidToolChainFactory::autodetectToolChainsFromNdks(
atc->setPlatformCodeGenFlags({"-target", target});
atc->setPlatformLinkerFlags({"-target", target});
atc->setDisplayName(displayName);
atc->resetToolChain(compilerCommand);
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);
result << tc;
++targetItr;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -385,14 +385,14 @@ ClangdClient::ClangdClient(Project *project, const Utils::FilePath &jsonDbDir, c
{
setName(Tr::tr("clangd"));
LanguageFilter langFilter;
langFilter.mimeTypes = QStringList{"text/x-chdr", "text/x-csrc",
"text/x-c++hdr", "text/x-c++src", "text/x-objc++src", "text/x-objcsrc"};
using namespace CppEditor::Constants;
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);
setActivateDocumentAutomatically(true);
setCompletionAssistProvider(new ClangdCompletionAssistProvider(this));
setQuickFixAssistProvider(new ClangdQuickFixProvider(this));
symbolSupport().setDefaultRenamingSymbolMapper(
[](const QString &oldSymbol) { return oldSymbol + "_new"; });
symbolSupport().setLimitRenamingToProjects(true);
if (!project) {
QJsonObject initOptions;
@@ -523,22 +523,57 @@ void ClangdClient::closeExtraFile(const Utils::FilePath &filePath)
SendDocUpdates::Ignore);
}
void ClangdClient::findUsages(TextDocument *document, const QTextCursor &cursor,
void ClangdClient::findUsages(const CppEditor::CursorInEditor &cursor,
const std::optional<QString> &replacement,
const std::function<void()> &renameCallback)
{
// 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);
if (searchTerm.isEmpty())
return;
if (replacement && versionNumber() >= QVersionNumber(16)
&& 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
// 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();
@@ -546,14 +581,15 @@ void ClangdClient::findUsages(TextDocument *document, const QTextCursor &cursor,
if (searchTerm != "operator" && Utils::allOf(searchTerm, [](const QChar &c) {
return c.isLetterOrNumber() || c == '_';
})) {
d->findUsages(document, adjustedCursor, searchTerm, replacement, renameCallback, categorize);
d->findUsages(cursor.textDocument(), adjustedCursor, searchTerm, replacement,
renameCallback, categorize);
return;
}
// Otherwise get the proper spelling of the search term from clang, so we can put it into the
// search widget.
const auto symbolInfoHandler = [this, doc = QPointer(document), adjustedCursor, replacement,
renameCallback, categorize]
const auto symbolInfoHandler = [this, doc = QPointer(cursor.textDocument()), adjustedCursor,
replacement, renameCallback, categorize]
(const QString &name, const QString &, const MessageId &) {
if (!doc)
return;
@@ -561,7 +597,8 @@ void ClangdClient::findUsages(TextDocument *document, const QTextCursor &cursor,
return;
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,
@@ -1053,9 +1090,8 @@ void ClangdClient::gatherHelpItemForTooltip(const HoverRequest::Response &hoverR
QString cleanString = markupString;
cleanString.remove('`');
const QStringList lines = cleanString.trimmed().split('\n');
if (!lines.isEmpty()) {
const auto markupFilePath = Utils::FilePath::fromUserInput(
lines.last().simplified());
for (const QString &line : lines) {
const auto markupFilePath = Utils::FilePath::fromUserInput(line.simplified());
if (markupFilePath.exists()) {
d->setHelpItemForTooltip(hoverResponse.id(),
filePath,

View File

@@ -53,7 +53,7 @@ public:
void openExtraFile(const Utils::FilePath &filePath, const QString &content = {});
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::function<void()> &renameCallback);
void checkUnused(const Utils::Link &link, Core::SearchResult *search,

View File

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

View File

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

View File

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

View File

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

View File

@@ -9,6 +9,7 @@
#include "clangformatutils.h"
#include <projectexplorer/project.h>
#include <texteditor/icodestylepreferences.h>
#include <utils/layoutbuilder.h>
@@ -24,10 +25,11 @@ using namespace Utils;
namespace ClangFormat {
ClangFormatGlobalConfigWidget::ClangFormatGlobalConfigWidget(ProjectExplorer::Project *project,
QWidget *parent)
ClangFormatGlobalConfigWidget::ClangFormatGlobalConfigWidget(
TextEditor::ICodeStylePreferences *codeStyle, ProjectExplorer::Project *project, QWidget *parent)
: CppCodeStyleWidget(parent)
, m_project(project)
, m_codeStyle(codeStyle)
{
resize(489, 305);
@@ -171,10 +173,19 @@ void ClangFormatGlobalConfigWidget::initOverrideCheckBox()
".clang-format file."));
m_overrideDefault->setChecked(getProjectOverriddenSettings(m_project));
m_codeStyle->currentPreferences()->setTemporarilyReadOnly(!m_overrideDefault->isChecked());
connect(m_overrideDefault, &QCheckBox::toggled, this, [this](bool checked) {
if (m_project)
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
namespace ProjectExplorer { class Project; }
namespace TextEditor { class ICodeStylePreferences; }
namespace ClangFormat {
@@ -22,7 +23,8 @@ class ClangFormatGlobalConfigWidget : public CppEditor::CppCodeStyleWidget
Q_OBJECT
public:
explicit ClangFormatGlobalConfigWidget(ProjectExplorer::Project *project = nullptr,
explicit ClangFormatGlobalConfigWidget(TextEditor::ICodeStylePreferences *codeStyle,
ProjectExplorer::Project *project = nullptr,
QWidget *parent = nullptr);
~ClangFormatGlobalConfigWidget() override;
void apply() override;
@@ -36,6 +38,7 @@ private:
bool projectClangFormatFileExists();
ProjectExplorer::Project *m_project;
TextEditor::ICodeStylePreferences *m_codeStyle;
QLabel *m_projectHasClangFormat;
QLabel *m_formattingModeLabel;

View File

@@ -51,9 +51,9 @@ public:
}
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
classviewsymbolinformation.cpp classviewsymbolinformation.h
classviewsymbollocation.cpp classviewsymbollocation.h
classviewtr.h
classviewtreeitemmodel.cpp classviewtreeitemmodel.h
classviewutils.cpp classviewutils.h
)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -414,7 +414,7 @@ void CppCodeStylePreferencesWidget::setCodeStyleSettings(const CppCodeStyleSetti
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)
widget->setEnabled(enable);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -20,6 +20,7 @@ add_qtc_plugin(Ios
iossettingswidget.cpp iossettingswidget.h
iossimulator.cpp iossimulator.h
iostoolhandler.cpp iostoolhandler.h
iostr.h
simulatorcontrol.cpp simulatorcontrol.h
simulatorinfomodel.cpp simulatorinfomodel.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();
QString errorMessage;
if (error.has_value()) {
m_client->log(*error);
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();

View File

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

View File

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

View File

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

View File

@@ -3,84 +3,85 @@ add_qtc_plugin(MesonProjectManager
DEPENDS QmlJS
PLUGIN_DEPENDS Core CppEditor ProjectExplorer TextEditor QtSupport
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.h
mesonprocess.h
mesonprocess.cpp
mesonoutputparser.h
mesonoutputparser.cpp
ninjaparser.h
ninjaparser.cpp
mesonrunconfiguration.h
mesonrunconfiguration.cpp
projecttree.h
projecttree.cpp
mesonprojectnodes.h
mesonprojectnodes.cpp
machinefilemanager.h
buildoptions.h
buildoptionsmodel.cpp
buildoptionsmodel.h
buildoptionsparser.h
buildsystemfilesparser.h
common.h
infoparser.h
kitdata.h
kithelper.h
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.h
ninjabuildstep.cpp
ninjabuildstep.h
ninjaparser.cpp
ninjaparser.h
ninjatoolkitaspect.cpp
ninjatoolkitaspect.h
ninjawrapper.h
projecttree.cpp
projecttree.h
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}")

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -18,9 +18,11 @@
#include <projectexplorer/taskhub.h>
#include <utils/fsengine/fileiconprovider.h>
#include <utils/futuresynchronizer.h>
#include <utils/theme/theme.h>
using namespace ProjectExplorer;
using namespace Utils;
namespace Python::Internal {
@@ -36,6 +38,7 @@ public:
PySideBuildConfigurationFactory buildConfigFactory;
SimpleTargetRunnerFactory runWorkerFactory{{runConfigFactory.runConfigurationId()}};
PythonSettings settings;
FutureSynchronizer m_futureSynchronizer;
};
PythonPlugin::PythonPlugin()
@@ -54,6 +57,12 @@ PythonPlugin *PythonPlugin::instance()
return m_instance;
}
FutureSynchronizer *PythonPlugin::futureSynchronizer()
{
QTC_ASSERT(m_instance, return nullptr);
return &m_instance->d->m_futureSynchronizer;
}
void PythonPlugin::initialize()
{
d = new PythonPluginPrivate;
@@ -66,9 +75,9 @@ void PythonPlugin::initialize()
void PythonPlugin::extensionsInitialized()
{
// 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);
Utils::FileIconProvider::registerIconOverlayForSuffix(imageFile, "py");
FileIconProvider::registerIconOverlayForSuffix(imageFile, "py");
TaskHub::addCategory(PythonErrorTaskCategory, "Python", true);
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -24,6 +24,7 @@ public:
QByteArray m_id;
QString m_displayName;
bool m_readOnly = false;
bool m_temporarilyReadOnly = false;
QString m_settingsSuffix;
};
@@ -71,6 +72,16 @@ void ICodeStylePreferences::setReadOnly(bool 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)
{
if (d->m_tabSettings == settings)

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -23,12 +23,15 @@ def toggleIssuesFilter(filterName, checked):
test.log("Exception while toggling filter '%s'" % filterName,
"%s(%s)" % (str(t), str(v)))
def getBuildIssues():
def getBuildIssues(ignoreCodeModel=True):
ensureChecked(":Qt Creator_Issues_Core::Internal::OutputPaneToggleButton")
model = waitForObject(":Qt Creator.Issues_QListView").model()
if ignoreCodeModel:
# filter out possible code model issues present inside the Issues pane
toggleIssuesFilter("Clang Code Model", False)
result = dumpBuildIssues(model)
if ignoreCodeModel:
# reset the filter
toggleIssuesFilter("Clang Code Model", True)
return result

View File

@@ -96,13 +96,30 @@ def getExecutableAndTargetFromToolTip(toolTip):
return None, target
return exe.group(1).strip(), target
def invokeContextMenuOnProject(projectName, menuItem):
# 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(":Qt Creator_Utils::NavigationTreeView", projectName, 3000)
projItem = waitForObjectItem(projectTV, treeElement, 100)
except:
try:
projItem = waitForObjectItem(":Qt Creator_Utils::NavigationTreeView",
addBranchWildcardToRoot(projectName), 1000)
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):
try:
projItem = waitForProjectTreeItem(projectName, 4000)
except:
test.fatal("Failed to find root node of the project '%s'." % projectName)
return

View File

@@ -248,7 +248,9 @@ def substituteMsvcPaths(settingsDir, version, targetBitness=64):
try:
msvcPath = os.path.join("C:\\Program Files (x86)", "Microsoft Visual Studio",
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'),
"SQUISH_MSVC%s_%d_PATH" % (version, targetBitness), msvcPath)
return

View File

@@ -41,15 +41,18 @@ def main():
# there should be new QML file generated with name "MyComponent.qml"
try:
# 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.
waitForObjectItem(":Qt Creator_Utils::NavigationTreeView",
addBranchWildcardToRoot(myCompTE), 2000)
waitForProjectTreeItem(myCompTE, 2000)
except:
pass
# open MyComponent.qml file for verification
if not test.verify(openDocument(myCompTE),
"Was MyComponent.qml properly generated in project explorer?"):
docOpened = openDocument(myCompTE)
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.")
saveAndExit()
return

View File

@@ -19,9 +19,6 @@ def main():
if platform.system() in ('Microsoft', 'Windows'):
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:
selectBuildConfig(kit, config)
test.log("Testing build configuration: " + config)

View File

@@ -99,10 +99,12 @@ def addHighlighterDefinition(*languages):
"text='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'}")
updateStatus = "{name='updateStatus' type='QLabel' visible='1'}"
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),
"Directory for syntax highlighter files exists.")
xmlFiles = glob.glob(os.path.join(syntaxDirectory, "*.xml"))

View File

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

View File

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

View File

@@ -142,6 +142,10 @@ def __qtFunc__(it, foundQt, qmakePath):
def __kitFunc__(it, foundQt, foundCompNames):
global currentSelectedTreeItem, warningOrError
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.")
if foundQt:
test.compare(qtVersionStr, foundQt, "Verifying if Qt versions match.")