From eebbd1ebc8c0d075abc306e6bf3d5948d8b47fcf Mon Sep 17 00:00:00 2001 From: David Schulz Date: Thu, 30 Jan 2020 09:47:50 +0100 Subject: [PATCH] Python: Add option to disable buffered output Fixes: QTCREATORBUG-23539 Change-Id: I1679642f470bd7ec2a478b41e942935a6e7ba027 Reviewed-by: Christian Stenger --- src/plugins/python/pythonrunconfiguration.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/plugins/python/pythonrunconfiguration.cpp b/src/plugins/python/pythonrunconfiguration.cpp index 1b498b025bb..757d96fa452 100644 --- a/src/plugins/python/pythonrunconfiguration.cpp +++ b/src/plugins/python/pythonrunconfiguration.cpp @@ -261,6 +261,12 @@ PythonRunConfiguration::PythonRunConfiguration(Target *target, Core::Id id) aspect()->setDefaultInterpreter( interpreters.isEmpty() ? PythonSettings::defaultInterpreter() : interpreters.first()); + auto bufferedAspect = addAspect(); + bufferedAspect->setSettingsKey("PythonEditor.RunConfiguation.Buffered"); + bufferedAspect->setLabel(tr("Buffered output"), BaseBoolAspect::LabelPlacement::AtCheckBox); + bufferedAspect->setToolTip(tr("Enabling improves output performance, " + "but results in delayed output.")); + auto scriptAspect = addAspect(); scriptAspect->setSettingsKey("PythonEditor.RunConfiguation.Script"); scriptAspect->setLabelText(tr("Script:")); @@ -273,8 +279,11 @@ PythonRunConfiguration::PythonRunConfiguration(Target *target, Core::Id id) addAspect(); addAspect(); - setCommandLineGetter([this, interpreterAspect, argumentsAspect] { - CommandLine cmd{interpreterAspect->currentInterpreter().command, {mainScript()}}; + setCommandLineGetter([this, bufferedAspect, interpreterAspect, argumentsAspect] { + CommandLine cmd{interpreterAspect->currentInterpreter().command}; + if (!bufferedAspect->value()) + cmd.addArg("-u"); + cmd.addArg(mainScript()); cmd.addArgs(argumentsAspect->arguments(macroExpander()), CommandLine::Raw); return cmd; });