-rw-r--r-- | noncore/settings/aqpkg/ipkg.cpp | 15 |
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 @@ -290,48 +290,63 @@ int Ipkg :: executeIpkgCommand( QStringList &cmd, const QString option ) cout << endl; // Start the process going finished = false; if(!proc->start(OProcess::NotifyOnExit, OProcess::All)) { emit outputText( QString( "Couldn't start ipkg process" ) ); qDebug( "Couldn't start ipkg process!" ); } // 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'; } void Ipkg::processFinished() { delete proc; proc = 0; finished = true; } |