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
@@ -67,2 +67,6 @@ void PackageHandler::qcopMessage( const QCString &msg, const QByteArray &data )
installPackage( file );
+ } else if ( msg == "installPackage(QString,QString)" ) {
+ QString file, dest;
+ stream >> file >> dest;
+ installPackage( file, dest );
} else if ( msg == "removePackage(QString)" ) {
@@ -95,3 +99,3 @@ void PackageHandler::qcopMessage( const QCString &msg, const QByteArray &data )
-void PackageHandler::installPackage( const QString &package )
+void PackageHandler::installPackage( const QString &package, const QString &dest )
{
@@ -104,3 +108,9 @@ 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() ) );