void ZipArch::test() { clearShellOutput(); TDEProcess *kp = m_currentProcess = new TDEProcess; kp->clearArguments(); *kp << m_unarchiver_program << "-t"; if ( !m_password.isEmpty() ) *kp << "-P" << m_password; *kp << m_filename; connect( kp, SIGNAL( receivedStdout(TDEProcess*, char*, int) ), SLOT( slotReceivedOutput(TDEProcess*, char*, int) ) ); connect( kp, SIGNAL( receivedStderr(TDEProcess*, char*, int) ), SLOT( slotReceivedOutput(TDEProcess*, char*, int) ) ); connect( kp, SIGNAL( processExited(TDEProcess*) ), SLOT( slotTestExited(TDEProcess*) ) ); if ( !kp->start( TDEProcess::NotifyOnExit, TDEProcess::AllOutput ) ) { KMessageBox::error( 0, i18n( "Could not start a subprocess." ) ); emit sigTest( false ); } }
void TarArch::open() { if ( compressed ) QFile::remove(tmpfile); // just to make sure setHeaders(); clearShellOutput(); // might as well plunk the output of tar -tvf in the shell output window... // // Now it's essential - used later to decide whether pathnames in the // tar archive are plain or start with "./" KProcess *kp = m_currentProcess = new KProcess; *kp << m_archiver_program; if ( compressed ) { *kp << "--use-compress-program=" + getUnCompressor(); } *kp << "-tvf" << m_filename; m_buffer = ""; m_header_removed = false; m_finished = false; connect(kp, SIGNAL(processExited(KProcess *)), this, SLOT(slotListingDone(KProcess *))); connect(kp, SIGNAL(receivedStdout(KProcess*, char*, int)), this, SLOT(slotReceivedOutput( KProcess *, char *, int ))); connect( kp, SIGNAL(receivedStderr(KProcess*, char*, int)), this, SLOT(slotReceivedOutput(KProcess*, char*, int))); if (kp->start(KProcess::NotifyOnExit, KProcess::AllOutput) == false) { KMessageBox::error( 0, i18n("Could not start a subprocess.") ); } // We list afterwards because we want the signals at the end // This unconfuses Extract Here somewhat if ( m_fileMimeType == "application/x-tgz" || m_fileMimeType == "application/x-tbz" || !compressed ) { openFirstCreateTempDone(); } else { connect( this, SIGNAL( createTempDone() ), this, SLOT( openFirstCreateTempDone() ) ); createTmp(); } }