From 5149a67d4b47072dfa61d766257620f1b121a1af Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Fri, 14 Jul 2023 12:56:33 +0200 Subject: [PATCH] Provide the possibility to pass parameters to a command using a string-list. Has to be improved later. --- process/command.cpp | 10 ++++++++-- process/command.h | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/process/command.cpp b/process/command.cpp index bfb1580..25efb3f 100644 --- a/process/command.cpp +++ b/process/command.cpp @@ -38,15 +38,21 @@ void Command::finished(int /*exitCode*/, QProcess::ExitStatus /*exitStatus*/) { disconnect(p, SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(readyReadStandardError())); } -bool Command::execute(QString workingDirectory) { +bool Command::execute(QString workingDirectory, QStringList args) { QScopedPointer p(new QProcess(this)); p->setProcessChannelMode(QProcess::MergedChannels); connect(&(*p), SIGNAL(readyReadStandardOutput()), this, SLOT(readyReadStandardOutput())); connect(&(*p), SIGNAL(readyReadStandardError()), this, SLOT(readyReadStandardError())); + qCritical() << "START COMMAND" << m_command << "IN" << workingDirectory; + p->setWorkingDirectory(workingDirectory); - p->start(m_command); + if (!args.isEmpty()) { + p->start(m_command, args); + } else { + p->start(m_command); + } if (p->waitForStarted(m_waitForStartTimeout)) { if (p->state() == QProcess::ProcessState::Running) { diff --git a/process/command.h b/process/command.h index 9ab0f09..6b79543 100644 --- a/process/command.h +++ b/process/command.h @@ -24,7 +24,7 @@ public: QString getCommandResult() const; - bool execute(QString workingDirectory = QCoreApplication::applicationDirPath()); + bool execute(QString workingDirectory, QStringList args = QStringList()); private slots: void readyReadStandardOutput();