summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/aqpkg/ipkg.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/noncore/settings/aqpkg/ipkg.cpp b/noncore/settings/aqpkg/ipkg.cpp
index 7afe04f..29bf40d 100644
--- a/noncore/settings/aqpkg/ipkg.cpp
+++ b/noncore/settings/aqpkg/ipkg.cpp
@@ -298,32 +298,47 @@ int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString option )
}
// Now wait for it to finish
while ( !finished )
qApp->processEvents();
}
void Ipkg::commandStdout(OProcess*, char *buffer, int buflen)
{
qDebug("received stdout %d bytes", buflen);
QString lineStr = buffer;
if ( lineStr[buflen-1] == '\n' )
buflen --;
lineStr = lineStr.left( buflen );
emit outputText( lineStr );
+
+ // check if we are installing dependant packages
+ if ( option == "install" || option == "reinstall" )
+ {
+ // Need to keep track of any dependant packages that get installed
+ // so that we can create links to them as necessary
+ if ( lineStr.startsWith( "Installing " ) )
+ {
+ int start = lineStr.find( " " ) + 1;
+ int end = lineStr.find( " ", start );
+ QString *package = new QString( lineStr.mid( start, end-start ) );
+ dependantPackages->append( package );
+ }
+ }
+
qDebug(lineStr);
buffer[0] = '\0';
}
void Ipkg::commandStderr(OProcess*, char *buffer, int buflen)
{
qDebug("received stderrt %d bytes", buflen);
QString lineStr = buffer;
if ( lineStr[buflen-1] == '\n' )
buflen --;
lineStr=lineStr.left( buflen );
emit outputText( lineStr );
buffer[0] = '\0';
}