diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-12-06 12:32:03 +0100 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-12-08 20:11:51 +0100 |
| commit | 0444193d8844b73fd401b5a837fd543bd8ca7951 (patch) | |
| tree | 975217b6984aa1ff62c040185bea166ea20613c1 /sources/pyside6 | |
| parent | 56aeec46a03df8cdee14b99b0389e8363bd608fc (diff) | |
Fix up error handling of the uic process for QUiLoader::load()
Fix the sequence of the checks and check for waitForStarted()
as well.
Change-Id: I46c4ac203886de7d7997b8847c82897574c95bb6
Reviewed-by: Adrian Herrmann <adrian.herrmann@qt.io>
Diffstat (limited to 'sources/pyside6')
| -rw-r--r-- | sources/pyside6/PySide6/glue/qtuitools.cpp | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/sources/pyside6/PySide6/glue/qtuitools.cpp b/sources/pyside6/PySide6/glue/qtuitools.cpp index e99c18f08..0f4405944 100644 --- a/sources/pyside6/PySide6/glue/qtuitools.cpp +++ b/sources/pyside6/PySide6/glue/qtuitools.cpp @@ -87,15 +87,15 @@ char *arg1 = PyBytes_AsString(strObj); QByteArray uiFileName(arg1); Py_DECREF(strObj); -QFile uiFile(QString::fromUtf8(uiFileName)); - -if (!uiFile.exists()) { - qCritical().noquote() << "File" << uiFileName << "does not exists"; +if (uiFileName.isEmpty()) { + qCritical() << "Error converting the UI filename to QByteArray"; Py_RETURN_NONE; } -if (uiFileName.isEmpty()) { - qCritical() << "Error converting the UI filename to QByteArray"; +QFile uiFile(QString::fromUtf8(uiFileName)); + +if (!uiFile.exists()) { + qCritical().noquote() << "File" << uiFileName << "does not exist"; Py_RETURN_NONE; } @@ -107,18 +107,26 @@ QStringList uicArgs = {QString::fromUtf8(uiFileName)}; QProcess uicProcess; uicProcess.start(uicBin, uicArgs); -if (!uicProcess.waitForFinished()) { - qCritical() << "Cannot run 'pyside6-uic': " << uicProcess.errorString() << " - " - << "Exit status " << uicProcess.exitStatus() - << " (" << uicProcess.exitCode() << ")\n" - << "Check if 'pyside6-uic' is in PATH"; +if (!uicProcess.waitForStarted()) { + qCritical().noquote() << "Cannot run '" << uicBin << "': " + << uicProcess.errorString() << " - Check if 'pyside6-uic' is in PATH"; Py_RETURN_NONE; } + +if (!uicProcess.waitForFinished() + || uicProcess.exitStatus() != QProcess::NormalExit + || uicProcess.exitCode() != 0) { + qCritical().noquote() << '\'' << uicBin << "' failed: " + << uicProcess.errorString() << " - Exit status " << uicProcess.exitStatus() + << " (" << uicProcess.exitCode() << ")\n"; + Py_RETURN_NONE; +} + QByteArray uiFileContent = uicProcess.readAllStandardOutput(); QByteArray errorOutput = uicProcess.readAllStandardError(); if (!errorOutput.isEmpty()) { - qCritical().noquote() << errorOutput; + qCritical().noquote() << '\'' << uicBin << "' failed: " << errorOutput; Py_RETURN_NONE; } |
