Action::Action(QObject *parent) : QProcess(parent) , m_failed(false) , m_firstProcess(NULL) , m_currentLine(-1) { setProcessChannelMode(QProcess::SeparateChannels); connect( this, SIGNAL(error(QProcess::ProcessError)), SLOT(actionError(QProcess::ProcessError)) ); connect( this, SIGNAL(started()), SLOT(actionStarted()) ); connect( this, SIGNAL(finished(int,QProcess::ExitStatus)), SLOT(actionFinished()) ); connect( this, SIGNAL(readyReadStandardError()), SLOT(actionErrorOutput()) ); connect( this, SIGNAL(readyReadStandardOutput()), this, SLOT(actionOutput()) ); quintptr id = actionId(this); QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); env.insert("COPYQ_ACTION_ID", QString::number(id)); setProcessEnvironment(env); setProperty("COPYQ_ACTION_ID", id); const QMutexLocker lock(&actionsLock); actions.append(this); }
Action::Action(const Commands &cmd, const QByteArray &input, const QString &outputItemFormat, const QString &itemSeparator, const QString &outputTabName, const QModelIndex &index) : QProcess() , m_input(input) , m_sep(index.isValid() ? QString() : itemSeparator) , m_cmds(cmd) , m_tab(outputTabName) , m_outputFormat(outputItemFormat != "text/plain" ? outputItemFormat : QString()) , m_index(index) , m_errstr() , m_lastOutput() , m_failed(false) , m_firstProcess(NULL) { setProcessChannelMode(QProcess::SeparateChannels); connect( this, SIGNAL(error(QProcess::ProcessError)), SLOT(actionError(QProcess::ProcessError)) ); connect( this, SIGNAL(started()), SLOT(actionStarted()) ); connect( this, SIGNAL(finished(int,QProcess::ExitStatus)), SLOT(actionFinished()) ); connect( this, SIGNAL(readyReadStandardError()), SLOT(actionErrorOutput()) ); if ( !outputItemFormat.isEmpty() ) { connect( this, SIGNAL(readyReadStandardOutput()), SLOT(actionOutput()) ); } }