Release 2023.06

This commit is contained in:
Magne Sjaastad
2023-06-19 13:48:44 +02:00
committed by GitHub
parent a7108f0a09
commit 77bf792b1a
1390 changed files with 66974 additions and 11511 deletions

View File

@@ -10,9 +10,7 @@ list(APPEND CODE_HEADER_FILES ${SOURCE_GROUP_HEADER_FILES})
list(APPEND CODE_SOURCE_FILES ${SOURCE_GROUP_SOURCE_FILES})
list(APPEND COMMAND_QT_MOC_HEADERS
${CMAKE_CURRENT_LIST_DIR}/RimProcessMonitor.h
)
list(APPEND QT_MOC_HEADERS ${CMAKE_CURRENT_LIST_DIR}/RimProcessMonitor.h)
source_group(
"ProjectDataModel\\ProcessControl"

View File

@@ -24,6 +24,7 @@
#include "cafPdmFieldCapability.h"
#include <QProcess>
#include <QProcessEnvironment>
// Disable deprecation warning for QProcess::start()
#ifdef _MSC_VER
@@ -133,7 +134,7 @@ int RimProcess::ID() const
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
bool RimProcess::execute()
bool RimProcess::execute( bool enableStdOut, bool enableStdErr )
{
QProcess* proc = new QProcess();
QString cmd = commandLine();
@@ -141,11 +142,19 @@ bool RimProcess::execute()
RiaLogging::info( QString( "Start process %1: %2" ).arg( m_id ).arg( cmd ) );
QObject::connect( proc, SIGNAL( finished( int, QProcess::ExitStatus ) ), m_monitor, SLOT( finished( int, QProcess::ExitStatus ) ) );
QObject::connect( proc, SIGNAL( readyReadStandardOutput() ), m_monitor, SLOT( readyReadStandardOutput() ) );
QObject::connect( proc, SIGNAL( readyReadStandardError() ), m_monitor, SLOT( readyReadStandardError() ) );
if ( enableStdOut ) QObject::connect( proc, SIGNAL( readyReadStandardOutput() ), m_monitor, SLOT( readyReadStandardOutput() ) );
if ( enableStdErr ) QObject::connect( proc, SIGNAL( readyReadStandardError() ), m_monitor, SLOT( readyReadStandardError() ) );
QObject::connect( proc, SIGNAL( started() ), m_monitor, SLOT( started() ) );
bool retval = false;
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
for ( auto& [key, val] : m_environmentVariables )
{
env.insert( key, val );
}
proc->setProcessEnvironment( env );
proc->start( cmd );
if ( proc->waitForStarted( -1 ) )
{
@@ -218,3 +227,11 @@ QString RimProcess::handleSpaces( QString arg ) const
}
return arg;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RimProcess::addEnvironmentVariable( QString name, QString value )
{
m_environmentVariables.push_back( std::make_pair( name, value ) );
}

View File

@@ -24,6 +24,9 @@
#include <QString>
#include <QStringList>
#include <utility>
#include <vector>
class RimProcessMonitor;
class RimProcess : public caf::PdmObject
@@ -39,13 +42,15 @@ public:
void addParameter( QString paramStr );
void setParameters( QStringList parameterList );
void addEnvironmentVariable( QString name, QString value );
QString commandLine() const;
QString command() const;
QStringList parameters() const;
int ID() const;
bool execute();
bool execute( bool enableStdOut = true, bool enableStdErr = true );
protected:
caf::PdmFieldHandle* userDescriptionField() override;
@@ -59,6 +64,8 @@ private:
caf::PdmField<QString> m_description;
caf::PdmField<int> m_id;
std::vector<std::pair<QString, QString>> m_environmentVariables;
static int m_nextProcessId;
RimProcessMonitor* m_monitor;
};