diff options
Diffstat (limited to 'ark/tar.cpp')
-rw-r--r-- | ark/tar.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/ark/tar.cpp b/ark/tar.cpp index 4cdb792..1c1fac9 100644 --- a/ark/tar.cpp +++ b/ark/tar.cpp @@ -785,5 +785,42 @@ void TarArch::customEvent( TQCustomEvent *ev ) } } +void TarArch::test() +{ + clearShellOutput(); + + KProcess *kp = m_currentProcess = new KProcess; + kp->clearArguments(); + + TQString uncomp = getUnCompressor(); + + *kp << uncomp; + + if( uncomp == "bunzip2" || uncomp == "gunzip" || uncomp == "lzop" ) + { + *kp << "-t"; + } + else + { + Arch::test(); + return; + } + + *kp << m_filename; + + connect( kp, SIGNAL( receivedStdout(KProcess*, char*, int) ), + SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); + connect( kp, SIGNAL( receivedStderr(KProcess*, char*, int) ), + SLOT( slotReceivedOutput(KProcess*, char*, int) ) ); + connect( kp, SIGNAL( processExited(KProcess*) ), + SLOT( slotTestExited(KProcess*) ) ); + + if ( !kp->start( KProcess::NotifyOnExit, KProcess::AllOutput ) ) + { + KMessageBox::error( 0, i18n( "Could not start a subprocess." ) ); + emit sigTest( false ); + } +} + #include "tar.moc" // kate: space-indent on; |