summaryrefslogtreecommitdiff
path: root/core/launcher/packageslave.cpp
Side-by-side diff
Diffstat (limited to 'core/launcher/packageslave.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/packageslave.cpp14
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
@@ -65,6 +65,10 @@ void PackageHandler::qcopMessage( const QCString &msg, const QByteArray &data )
QString file;
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;
stream >> file;
@@ -93,7 +97,7 @@ 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 ) {
mNoSpaceLeft = FALSE;
@@ -102,7 +106,13 @@ void PackageHandler::installPackage( const QString &package )
//return;
}
- 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() ) );
connect( currentProcess, SIGNAL( readyReadStderr() ), SLOT( readyReadStderr() ) );