Merge remote-tracking branch 'origin/11.0'

Change-Id: Ifab8b72af33de4decf20d2a879bea4dfba1e9fbe
This commit is contained in:
Eike Ziller
2023-09-07 11:15:32 +02:00
10 changed files with 8212 additions and 6107 deletions

View File

@@ -12437,7 +12437,7 @@ Siehe auch die Einstellungen für Google Test.</translation>
</message>
<message>
<source>The remote executable must be set in order to run a custom remote run configuration.</source>
<translation>Die entfernte ausführbare Datei muss eingestellt sein um eine benutzerdefinierte enternte Ausführungskonfiguration zu verwenden.</translation>
<translation>Die entfernte ausführbare Datei muss gesetzt sein, um eine benutzerdefinierte entfernte Ausführungskonfiguration zu verwenden.</translation>
</message>
<message>
<source>Custom Executable</source>
@@ -14425,7 +14425,7 @@ Zum Beispiel bewirkt die Angabe &quot;Revision: 15&quot; dass der Branch auf Rev
</message>
<message>
<source>Set as the default CMake Tool to use when creating a new kit or when no value is set.</source>
<translation>Als vorgegebenes CMake-Werkzeug einstellen, das verwendet wird, wenn eine neues Kit erstellt wird oder kein Wert eingestellt ist.</translation>
<translation>Als vorgegebenes CMake-Werkzeug einstellen, das verwendet wird, wenn ein neues Kit erstellt wird oder kein Wert gesetzt ist.</translation>
</message>
<message>
<source>Clone of %1</source>
@@ -14481,7 +14481,7 @@ Zum Beispiel bewirkt die Angabe &quot;Revision: 15&quot; dass der Branch auf Rev
</message>
<message>
<source>A CMake tool must be set up for building. Configure a CMake tool in the kit options.</source>
<translation>Zum Erstellen muss ein CMake-Werkzeug eingestellt sein. Die Konfiguration erfolgt in den Kit Einstellungen.</translation>
<translation>Zum Erstellen muss ein CMake-Werkzeug gesetzt sein. Die Konfiguration erfolgt in den Kit Einstellungen.</translation>
</message>
<message>
<source>There is a CMakeCache.txt file in &quot;%1&quot;, which suggest an in-source build was done before. You are now building in &quot;%2&quot;, and the CMakeCache.txt file might confuse CMake.</source>
@@ -32854,11 +32854,11 @@ Möchten Sie sie überschreiben?</translation>
</message>
<message>
<source>No device chosen. Select %1.</source>
<translation>Kein Gerät eingestellt. Wählen Sie %1 aus.</translation>
<translation>Kein Gerät ausgewählt. Wählen Sie %1 aus.</translation>
</message>
<message>
<source>No device chosen. Enable developer mode on a device.</source>
<translation>Kein Gerät eingestellt. Aktivieren Sie den Entwicklungsmodus auf einem Gerät.</translation>
<translation>Kein Gerät ausgewählt. Aktivieren Sie den Entwicklungsmodus auf einem Gerät.</translation>
</message>
<message>
<source>No device available.</source>
@@ -34785,7 +34785,7 @@ Dies ist hilfreich, wenn das Build-Verzeichnis beschädigt ist oder das Projekt
</message>
<message>
<source>Set as the default Meson executable to use when creating a new kit or when no value is set.</source>
<translation>Als vorgegebenes Meson-Werkzeug einstellen, das verwendet wird, wenn eine neues Kit erstellt wird oder kein Wert eingestellt ist.</translation>
<translation>Als vorgegebenes Meson-Werkzeug einstellen, das verwendet wird, wenn ein neues Kit erstellt wird oder kein Wert gesetzt ist.</translation>
</message>
</context>
<context>
@@ -41386,7 +41386,7 @@ Was soll %1 tun?</translation>
</message>
<message>
<source>No device set.</source>
<translation>Es ist kein Gerät eingestellt.</translation>
<translation>Es ist kein Gerät gesetzt.</translation>
</message>
<message>
<source>Device is incompatible with this kit.</source>
@@ -43230,7 +43230,7 @@ Weder der Pfad zur Bibliothek noch der Pfad zu den Headerdateien wird zur .pro-D
</message>
<message>
<source>&lt;b&gt;qmake:&lt;/b&gt; No Qt version set. Cannot run qmake.</source>
<translation>&lt;b&gt;qmake:&lt;/b&gt; Es ist keine Qt-Version eingestellt. qmake kann nicht ausgeführt werden.</translation>
<translation>&lt;b&gt;qmake:&lt;/b&gt; Es ist keine Qt-Version gesetzt. qmake kann nicht ausgeführt werden.</translation>
</message>
<message>
<source>&lt;b&gt;qmake:&lt;/b&gt; %1 %2</source>
@@ -46061,7 +46061,7 @@ Are you sure?</source>
</message>
<message>
<source>Remote path not set</source>
<translation>Der entfernte Pfad ist nicht eingestellt</translation>
<translation>Der entfernte Pfad ist nicht gesetzt</translation>
</message>
<message>
<source>Executable on host:</source>
@@ -46983,7 +46983,7 @@ Zusätzlich wird die Verbindung zum Gerät getestet.</translation>
</message>
<message>
<source>No device configuration set.</source>
<translation>Es ist keine Gerätekonfiguration eingestellt.</translation>
<translation>Es ist keine Gerätekonfiguration gesetzt.</translation>
</message>
<message>
<source>Cannot deploy: %1</source>
@@ -47504,7 +47504,7 @@ Der Kontrollprozess konnte nicht gestartet werden.</translation>
</message>
<message>
<source>The remote executable must be set in order to run a custom remote run configuration.</source>
<translation>Die entfernte ausführbare Datei muss eingestellt sein um eine benutzerdefinierte enternte Ausführungskonfiguration zu verwenden.</translation>
<translation>Die entfernte ausführbare Datei muss gesetzt sein um eine benutzerdefinierte entfernte Ausführungskonfiguration zu verwenden.</translation>
</message>
<message>
<source>Custom Executable</source>

File diff suppressed because it is too large Load Diff

View File

@@ -2048,14 +2048,14 @@ const Value *Check::checkScopeObjectMember(const UiQualifiedId *id)
return nullptr;
if (!value) {
// We omit M16 messages if the type using ImmediateProperties
// Ideally, we should obtain them through metaobject information
const bool omitMessage = !m_typeStack.isEmpty()
&& ((m_typeStack.last() == "PropertyChanges")
|| m_typeStack.last() == "Binding")
&& !m_idStack.isEmpty() && m_idStack.last().contains(propertyName);
if (!omitMessage)
// We omit M16 messages if the enclosing type have ImmediateProperties classinfo.
// Ideally, we should get this information from metaobject by checking the index
// metaObject->indexOfClassInfo("ImmediatePropertyNames"), for now it's hard coded.
if ( !m_typeStack.isEmpty()
&& ((m_typeStack.last() != "PropertyChanges")
&& m_typeStack.last() != "Binding")) {
addMessage(ErrInvalidPropertyName, id->identifierToken, propertyName);
}
return nullptr;
}

View File

@@ -198,15 +198,16 @@ static QString initialStagingDir(Kit *kit)
static bool supportsStageForInstallation(const Kit *kit)
{
IDeviceConstPtr runDevice = DeviceKitAspect::device(kit);
Id runDeviceType = DeviceTypeKitAspect::deviceTypeId(kit);
IDeviceConstPtr buildDevice = BuildDeviceKitAspect::device(kit);
QTC_ASSERT(runDevice, return false);
QTC_ASSERT(runDeviceType.isValid(), return false);
QTC_ASSERT(buildDevice, return false);
return runDevice->id() != buildDevice->id()
&& runDevice->type() != Android::Constants::ANDROID_DEVICE_TYPE
&& runDevice->type() != Ios::Constants::IOS_DEVICE_TYPE
&& runDevice->type() != Ios::Constants::IOS_SIMULATOR_TYPE
&& runDevice->type() != BareMetal::Constants::BareMetalOsType
&& runDevice->type() != WebAssembly::Constants::WEBASSEMBLY_DEVICE_TYPE;
return (!runDevice || runDevice->id() != buildDevice->id())
&& runDeviceType != Android::Constants::ANDROID_DEVICE_TYPE
&& runDeviceType != Ios::Constants::IOS_DEVICE_TYPE
&& runDeviceType != Ios::Constants::IOS_SIMULATOR_TYPE
&& runDeviceType != BareMetal::Constants::BareMetalOsType
&& runDeviceType != WebAssembly::Constants::WEBASSEMBLY_DEVICE_TYPE;
}
CMakeBuildStep::CMakeBuildStep(BuildStepList *bsl, Id id) :

View File

@@ -285,6 +285,8 @@ bool CMakeBuildSystem::addFiles(Node *context, const FilePaths &filePaths, FileP
const int targetDefinitionLine = target.backtrace.last().line;
// Have a fresh look at the CMake file, not relying on a cached value
Core::DocumentManager::saveModifiedDocumentSilently(
Core::DocumentModel::documentForFilePath(targetCMakeFile));
expected_str<QByteArray> fileContent = targetCMakeFile.fileContents();
cmListFile cmakeListFile;
std::string errorString;
@@ -410,6 +412,8 @@ CMakeBuildSystem::projectFileArgumentPosition(const QString &targetName, const Q
const FilePath targetCMakeFile = target.backtrace.last().path;
// Have a fresh look at the CMake file, not relying on a cached value
Core::DocumentManager::saveModifiedDocumentSilently(
Core::DocumentModel::documentForFilePath(targetCMakeFile));
expected_str<QByteArray> fileContent = targetCMakeFile.fileContents();
cmListFile cmakeListFile;
std::string errorString;

View File

@@ -1450,9 +1450,11 @@ void GdbEngine::handleStop2(const GdbMi &data)
void GdbEngine::handleStop3()
{
if (terminal() && state() != InferiorRunOk) {
DebuggerCommand cmd("-thread-info", Discardable);
cmd.callback = CB(handleThreadInfo);
runCommand(cmd);
}
}
void GdbEngine::handleShowVersion(const DebuggerResponse &response)

View File

@@ -471,7 +471,7 @@ QWidget *QMakeStep::createConfigWidget()
connect(abisListWidget, &QListWidget::itemChanged, this, [this] {
if (m_ignoreChanges.isLocked())
return;
updateAbiWidgets();
abisChanged();
if (QmakeBuildConfiguration *bc = qmakeBuildConfiguration())
BuildManager::buildLists({bc->cleanSteps()});
});

View File

@@ -211,6 +211,38 @@ void onInferiorErrorOccurered(QProcess::ProcessError error)
qCWarning(log) << "Inferior error: " << error << inferiorProcess.errorString();
}
#ifdef Q_OS_LINUX
QString statusToString(int status)
{
if (WIFEXITED(status))
return QString("exit, status=%1").arg(WEXITSTATUS(status));
else if (WIFSIGNALED(status))
return QString("Killed by: %1").arg(WTERMSIG(status));
else if (WIFSTOPPED(status)) {
return QString("Stopped by: %1").arg(WSTOPSIG(status));
} else if (WIFCONTINUED(status))
return QString("Continued");
return QString("Unknown status");
}
bool waitFor(int signalToWaitFor)
{
int status = 0;
waitpid(inferiorId, &status, WUNTRACED);
if (!WIFSTOPPED(status) || WSTOPSIG(status) != signalToWaitFor) {
qCCritical(log) << "Unexpected status during startup:" << statusToString(status)
<< ", aborting";
sendCrash(0xFF);
return false;
}
return true;
}
#endif
void onInferiorStarted()
{
inferiorId = inferiorProcess.processId();
@@ -223,25 +255,21 @@ void onInferiorStarted()
if (!debugMode)
sendPid(inferiorId);
#else
if (debugMode) {
qCInfo(log) << "Waiting for SIGTRAP from inferiors execve ...";
if (!waitFor(SIGTRAP))
return;
qCInfo(log) << "Detaching ...";
ptrace(PTRACE_DETACH, inferiorId, 0, SIGSTOP);
// Wait until the process actually finished detaching
int status = 0;
waitpid(inferiorId, &status, WUNTRACED);
if (log().isInfoEnabled()) {
if (WIFEXITED(status))
qCInfo(log) << "inferior exited, status=" << WEXITSTATUS(status);
else if (WIFSIGNALED(status))
qCInfo(log) << "inferior killed by signal" << WTERMSIG(status);
else if (WIFSTOPPED(status))
qCInfo(log) << "inferior stopped by signal" << WSTOPSIG(status);
else if (WIFCONTINUED(status))
qCInfo(log) << "inferior continued";
}
if (!waitFor(SIGSTOP))
return;
}
qCInfo(log) << "Sending pid:" << inferiorId;
sendPid(inferiorId);
#endif
}

View File

@@ -28,12 +28,23 @@ Window {
Text {
id: innerText
}
states: State {
states: [
State {
name: "widerText"
PropertyChanges { myText.width: undefined }
AnchorChanges { innerRect.width: undefined } // 16 29 37
},
State {
when: root.visible
PropertyChanges {
// change an object property that is not an ancestor
innerRect {
color: "blue"
}
}
}
]
}
Binding {rect.width: innerText.width}
}