From 524cdf54bc8996ba2d7bbae1c61acb3e0b86f77a Mon Sep 17 00:00:00 2001 From: Nikolai Kosjar Date: Thu, 18 Jul 2019 16:09:54 +0200 Subject: [PATCH] QtSupport: Fix handling of not yet saved *.ui files Since commit fb3e18bd4ba7c08346290cf498f28bf82a7162d9 Fix missing header guards in UI files the uic input comes from a file (on disk) and thus the source contents from the edited and not yet saved *.ui file (Designer mode) was ignored. Revert the relevant part. This should not introduce a regression as commit 47312b04c0878e0c308794cde08e92c03d4be29e QtSupport: Fix header guard for ui files basically superseded the first change, handling the proper inclusion of the generated header file. Fixes: QTCREATORBUG-22740 Change-Id: Iec6550817941eea99f823c377680b9a6fa5564e8 Reviewed-by: Christian Kandeler --- src/plugins/qtsupport/uicgenerator.cpp | 8 +++++++- src/plugins/qtsupport/uicgenerator.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/plugins/qtsupport/uicgenerator.cpp b/src/plugins/qtsupport/uicgenerator.cpp index abf8790016f..19248f3b366 100644 --- a/src/plugins/qtsupport/uicgenerator.cpp +++ b/src/plugins/qtsupport/uicgenerator.cpp @@ -67,7 +67,7 @@ Utils::FilePath UicGenerator::command() const QStringList UicGenerator::arguments() const { - return {"-p", source().toString()}; + return {"-p"}; } FileNameToContentsHash UicGenerator::handleProcessFinished(QProcess *process) @@ -87,6 +87,12 @@ FileNameToContentsHash UicGenerator::handleProcessFinished(QProcess *process) return result; } +void UicGenerator::handleProcessStarted(QProcess *process, const QByteArray &sourceContents) +{ + process->write(sourceContents); + process->closeWriteChannel(); +} + FileType UicGeneratorFactory::sourceType() const { return FileType::Form; diff --git a/src/plugins/qtsupport/uicgenerator.h b/src/plugins/qtsupport/uicgenerator.h index 1253e8f1abe..e1c7f013d04 100644 --- a/src/plugins/qtsupport/uicgenerator.h +++ b/src/plugins/qtsupport/uicgenerator.h @@ -43,6 +43,7 @@ protected: Utils::FilePath command() const override; QStringList arguments() const override; ProjectExplorer::FileNameToContentsHash handleProcessFinished(QProcess *process) override; + void handleProcessStarted(QProcess *process, const QByteArray &sourceContents) override; }; class UicGeneratorFactory : public ProjectExplorer::ExtraCompilerFactory