diff --git a/qrenderdoc/Code/pyrenderdoc/PythonContext.cpp b/qrenderdoc/Code/pyrenderdoc/PythonContext.cpp index 61d3083ee..b61793650 100644 --- a/qrenderdoc/Code/pyrenderdoc/PythonContext.cpp +++ b/qrenderdoc/Code/pyrenderdoc/PythonContext.cpp @@ -406,7 +406,7 @@ void PythonContext::GlobalShutdown() Py_Finalize(); } -void PythonContext::executeString(const QString &filename, const QString &source) +void PythonContext::executeString(const QString &filename, const QString &source, bool interactive) { if(!initialised()) { @@ -421,8 +421,8 @@ void PythonContext::executeString(const QString &filename, const QString &source PyGILState_STATE gil = PyGILState_Ensure(); - PyObject *compiled = - Py_CompileString(source.toUtf8().data(), filename.toUtf8().data(), Py_file_input); + PyObject *compiled = Py_CompileString(source.toUtf8().data(), filename.toUtf8().data(), + interactive ? Py_single_input : Py_file_input); PyObject *ret = NULL; @@ -467,9 +467,9 @@ void PythonContext::executeString(const QString &filename, const QString &source emit exception(typeStr, valueStr, frames); } -void PythonContext::executeString(const QString &source) +void PythonContext::executeString(const QString &source, bool interactive) { - executeString("", source); + executeString("", source, interactive); } void PythonContext::executeFile(const QString &filename) diff --git a/qrenderdoc/Code/pyrenderdoc/PythonContext.h b/qrenderdoc/Code/pyrenderdoc/PythonContext.h index 81d99ba3a..0cc52fc64 100644 --- a/qrenderdoc/Code/pyrenderdoc/PythonContext.h +++ b/qrenderdoc/Code/pyrenderdoc/PythonContext.h @@ -88,8 +88,8 @@ signals: void textOutput(bool isStdError, const QString &output); public slots: - void executeString(const QString &source); - void executeString(const QString &filename, const QString &source); + void executeString(const QString &source, bool interactive = false); + void executeString(const QString &filename, const QString &source, bool interactive = false); void executeFile(const QString &filename); void setGlobal(const char *varName, const char *typeName, void *object); void setPyGlobal(const char *varName, PyObject *object);