Diffstat (limited to 'core/launcher/packageslave.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | core/launcher/packageslave.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/core/launcher/packageslave.cpp b/core/launcher/packageslave.cpp index 0461432..abbc610 100644 --- a/core/launcher/packageslave.cpp +++ b/core/launcher/packageslave.cpp @@ -66,4 +66,8 @@ void PackageHandler::qcopMessage( const QCString &msg, const QByteArray &data ) stream >> file; installPackage( file ); + } else if ( msg == "installPackage(QString,QString)" ) { + QString file, dest; + stream >> file >> dest; + installPackage( file, dest ); } else if ( msg == "removePackage(QString)" ) { QString file; @@ -94,5 +98,5 @@ void PackageHandler::qcopMessage( const QCString &msg, const QByteArray &data ) } -void PackageHandler::installPackage( const QString &package ) +void PackageHandler::installPackage( const QString &package, const QString &dest ) { if ( mNoSpaceLeft ) { @@ -103,5 +107,11 @@ void PackageHandler::installPackage( const QString &package ) } - currentProcess = new QProcess( QStringList() << "ipkg" << "install" << package ); // No tr + QStringList cmd; + cmd << "ipkg"; + if ( !dest.isEmpty() ) { + cmd << "-d" << dest; + } + cmd << "install" << package; + currentProcess = new QProcess( cmd ); // No tr connect( currentProcess, SIGNAL( processExited() ), SLOT( iProcessExited() ) ); connect( currentProcess, SIGNAL( readyReadStdout() ), SLOT( readyReadStdout() ) ); |