From 4a295eea791ea619cbbf916822e147f1e16c2c23 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Mon, 12 Jun 2023 11:05:27 +0200 Subject: scriptableapplication example: Pass script as a single string Do not split and re-assemble the lines. Task-number: PYSIDE-2206 Change-Id: I95c19c142285a65e1b77b30c36c2f3c24560c91f Reviewed-by: Cristian Maureira-Fredes (cherry picked from commit 538593a7d4e4f2a626f4c8ff52fd17dae10029be) Reviewed-by: Qt Cherry-pick Bot --- examples/scriptableapplication/mainwindow.cpp | 13 +++++++------ examples/scriptableapplication/mainwindow.h | 2 +- examples/scriptableapplication/pythonutils.cpp | 10 ++-------- examples/scriptableapplication/pythonutils.h | 2 +- 4 files changed, 11 insertions(+), 16 deletions(-) diff --git a/examples/scriptableapplication/mainwindow.cpp b/examples/scriptableapplication/mainwindow.cpp index a1aae3c40..26d80a7de 100644 --- a/examples/scriptableapplication/mainwindow.cpp +++ b/examples/scriptableapplication/mainwindow.cpp @@ -78,19 +78,20 @@ MainWindow::MainWindow() void MainWindow::slotRunScript() { const QString text = m_scriptEdit->toPlainText().trimmed(); - const QStringList script = text.split(u'\n', Qt::SkipEmptyParts); - if (!script.isEmpty()) - runScript(script); + if (!text.isEmpty()) + runScript(text); } void MainWindow::slotPrintDiagnostics() { - const QStringList script = QStringList() - << "import sys" << "print('Path=', sys.path)" << "print('Executable=', sys.executable)"; + const QString script = R"P(import sys +print('Path=', sys.path) +print('Executable=', sys.executable) +)P"_L1; runScript(script); } -void MainWindow::runScript(const QStringList &script) +void MainWindow::runScript(const QString &script) { if (!::PythonUtils::runScript(script)) statusBar()->showMessage(tr("Error running script")); diff --git a/examples/scriptableapplication/mainwindow.h b/examples/scriptableapplication/mainwindow.h index b7cafc3e6..476243f9b 100644 --- a/examples/scriptableapplication/mainwindow.h +++ b/examples/scriptableapplication/mainwindow.h @@ -21,7 +21,7 @@ private Q_SLOTS: void slotPrintDiagnostics(); private: - void runScript(const QStringList &); + void runScript(const QString &); QPlainTextEdit *m_scriptEdit; }; diff --git a/examples/scriptableapplication/pythonutils.cpp b/examples/scriptableapplication/pythonutils.cpp index b167bb240..8104bb167 100644 --- a/examples/scriptableapplication/pythonutils.cpp +++ b/examples/scriptableapplication/pythonutils.cpp @@ -114,20 +114,14 @@ bool bindAppObject(const QString &moduleName, const QString &name, return true; } -bool runScript(const QStringList &script) +bool runScript(const QString &script) { if (init() == PythonUninitialized) return false; - // Concatenating all the lines - QString content; - QTextStream ss(&content); - for (const QString &line: script) - ss << line << "\n"; - // Executing the whole script as one line bool result = true; - const QByteArray line = content.toUtf8(); + const QByteArray line = script.toUtf8(); if (PyRun_SimpleString(line.constData()) == -1) { if (PyErr_Occurred()) PyErr_Print(); diff --git a/examples/scriptableapplication/pythonutils.h b/examples/scriptableapplication/pythonutils.h index 80698d234..7f05cdedb 100644 --- a/examples/scriptableapplication/pythonutils.h +++ b/examples/scriptableapplication/pythonutils.h @@ -27,7 +27,7 @@ State init(); bool bindAppObject(const QString &moduleName, const QString &name, int index, QObject *o); -bool runScript(const QStringList &script); +bool runScript(const QString &script); } // namespace PythonUtils -- cgit v1.2.3