QString KSimpleProcess::execInternal( const QString &args, bool addStdError) { m_proc->setArguments( splitArgList( args )); connect(m_proc, SIGNAL(processExited()), this, SLOT(slotProcessExited())); connect(m_proc, SIGNAL(readyReadStdout()), this, SLOT(slotReceivedStdout())); if( addStdError ) connect(m_proc, SIGNAL(readyReadStderr()), this, SLOT(slotReceivedStderr())); if ( !m_proc->start() ) return i18n("Could not run command '%1'.").arg( args.latin1() ); enter_loop(); return m_currBuffer; }
ReportGenerator::ReportGenerator() :mArchDoc( 0 ) { connect( this, SIGNAL( templateGenerated( const QString& )), this, SLOT( slotConvertTemplate( const QString& ))); mProcess.setOutputChannelMode( KProcess::SeparateChannels ); connect( &mProcess, SIGNAL( finished( int ) ),this, SLOT( trml2pdfFinished( int ) ) ); connect( &mProcess, SIGNAL( readyReadStandardOutput()), this, SLOT( slotReceivedStdout() ) ); connect( &mProcess, SIGNAL( readyReadStandardError()), this, SLOT( slotReceivedStderr() ) ); connect( &mProcess, SIGNAL( error ( QProcess::ProcessError )), this, SLOT( slotError( QProcess::ProcessError))); mAddressProvider = new AddressProvider( this ); connect( mAddressProvider, SIGNAL( addresseeFound( const QString&, const KABC::Addressee& )), this, SLOT( slotAddresseeFound( const QString&, const KABC::Addressee& ) ) ); connect( mAddressProvider, SIGNAL( finished(int) ), this, SLOT( slotAddresseeSearchFinished(int)) ); }
bool EvaScriptManager::qt_invoke( int _id, QUObject* _o ) { switch ( _id - staticMetaObject()->slotOffset() ) { case 0: slotCurrentChanged((QListViewItem*)static_QUType_ptr.get(_o+1)); break; case 1: static_QUType_bool.set(_o,slotInstallScript()); break; case 2: static_QUType_bool.set(_o,slotInstallScript((const QString&)static_QUType_QString.get(_o+1))); break; case 3: slotUninstallScript(); break; case 4: static_QUType_bool.set(_o,slotRunScript()); break; case 5: static_QUType_bool.set(_o,slotRunScript((bool)static_QUType_bool.get(_o+1))); break; case 6: slotStopScript(); break; case 7: slotConfigureScript(); break; case 8: slotAboutScript(); break; case 9: slotShowContextMenu((QListViewItem*)static_QUType_ptr.get(_o+1),(const QPoint&)*((const QPoint*)static_QUType_ptr.get(_o+2))); break; case 10: slotReceivedStdout((KProcess*)static_QUType_ptr.get(_o+1),(char*)static_QUType_charstar.get(_o+2),(int)static_QUType_int.get(_o+3)); break; case 11: slotReceivedStderr((KProcess*)static_QUType_ptr.get(_o+1),(char*)static_QUType_charstar.get(_o+2),(int)static_QUType_int.get(_o+3)); break; case 12: scriptFinished((KProcess*)static_QUType_ptr.get(_o+1)); break; default: return KDialogBase::qt_invoke( _id, _o ); } return TRUE; }
bool CvsJob::execute() { // setup job environment to use the ssh-agent (if it is running) SshAgent ssh; if( !ssh.pid().isEmpty() ) { // qCDebug(log_cervisia) << "PID = " << ssh.pid(); // qCDebug(log_cervisia) << "SOCK = " << ssh.authSock(); d->childproc->setEnv("SSH_AGENT_PID", ssh.pid()); d->childproc->setEnv("SSH_AUTH_SOCK", ssh.authSock()); } d->childproc->setEnv("SSH_ASKPASS", "cvsaskpass"); if( !d->rsh.isEmpty() ) d->childproc->setEnv("CVS_RSH", d->rsh); if( !d->server.isEmpty() ) d->childproc->setEnv("CVS_SERVER", d->server); if( !d->directory.isEmpty() ) d->childproc->setWorkingDirectory(d->directory); connect(d->childproc, SIGNAL(finished(int,QProcess::ExitStatus)), SLOT(slotProcessFinished())); connect(d->childproc, SIGNAL(readyReadStandardOutput()), SLOT(slotReceivedStdout())); connect(d->childproc, SIGNAL(readyReadStandardError()), SLOT(slotReceivedStderr())); qCDebug(log_cervisia) << "Execute cvs command:" << cvsCommand(); d->isRunning = true; d->childproc->setOutputChannelMode(KProcess::SeparateChannels); d->childproc->setShellCommand(cvsCommand()); d->childproc->start(); return d->childproc->waitForStarted(); }
void ReportGenerator::runTrml2Pdf( const QString& rmlFile, const QString& docID, const QString& archId ) { mErrors.clear(); // findTrml2Pdf returns a list of command line parts for the converter, such as // /usr/bin/pyhton /usr/local/share/erml2pdf.py QStringList rmlbin = findTrml2Pdf(); if ( ! rmlbin.size() ) { mErrors = i18n("The utility to create PDF from the rml file could not be found, " "but is required to create documents.\n"); mErrors += i18n("Please make sure the package is installed accordingly."); trml2pdfFinished(1, QProcess::NormalExit); } QApplication::setOverrideCursor( QCursor( Qt::BusyCursor ) ); if ( mHavePdfMerge && mMergeIdent != "0" && ( mWatermarkFile.isEmpty() || !QFile::exists( mWatermarkFile ) ) ) { QMessageBox msgBox; msgBox.setText(i18n("The Watermark file to merge with the document could not be found. " "Merge is going to be disabled.")); msgBox.setWindowTitle(i18n("Watermark Error")); msgBox.setStandardButtons(QMessageBox::Ok); msgBox.exec(); mMergeIdent = "0"; } const QString outputDir = ArchiveMan::self()->pdfBaseDir(); const QString filename = ArchiveMan::self()->archiveFileName( docID, archId, "pdf" ); mFile.setFileName( QString( "%1/%2").arg( outputDir).arg( filename ) ); // qDebug () << "Writing output to " << mFile.fileName(); // check if we have etrml2pdf bool haveErml = false; QStringList args; if( rmlbin.size() > 1 ) { QString ermlbin = rmlbin[1]; if( ermlbin.endsWith( "erml2pdf.py") ) { haveErml = true; } args.append(rmlbin.at(1)); } const QString prg = rmlbin.at(0); if( !haveErml ) { if ( mHavePdfMerge ) { args << mMergeIdent; } args << rmlFile; if ( mHavePdfMerge && mMergeIdent != "0" ) { args << mWatermarkFile; } } else { // qDebug () << "Erml2pdf available!"; if ( mHavePdfMerge && mMergeIdent != "0" ) { args << "-m" << mMergeIdent; args << "-w" << mWatermarkFile; } args << rmlFile; } mOutputSize = 0; if ( mFile.open( QIODevice::WriteOnly ) ) { qDebug() << "Converting " << rmlFile << "using" << prg << args.join(QChar(' ')); mProcess = new QProcess(this); connect(mProcess, SIGNAL(readyReadStandardOutput()), this, SLOT(slotReceivedStdout())); connect(mProcess, SIGNAL(readyReadStandardError()), this, SLOT(slotReceivedStderr())); connect(mProcess, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(trml2pdfFinished(int,QProcess::ExitStatus))); mProcess->setProgram( prg ); mProcess->setArguments(args); mTargetStream.setDevice( &mFile ); mProcess->start( ); } else {