-rw-r--r-- | noncore/settings/packagemanager/ChangeLog | 7 | ||||
-rw-r--r-- | noncore/settings/packagemanager/oipkg.cpp | 12 | ||||
-rw-r--r-- | noncore/settings/packagemanager/opackagemanager.cpp | 7 |
3 files changed, 16 insertions, 10 deletions
diff --git a/noncore/settings/packagemanager/ChangeLog b/noncore/settings/packagemanager/ChangeLog index 608cd98..38756b1 100644 --- a/noncore/settings/packagemanager/ChangeLog +++ b/noncore/settings/packagemanager/ChangeLog @@ -1,15 +1,20 @@ +2005-02-16 Dan Williams <drw@handhelds.org> + + * Fixed stupid bug where last package in status file was not shown as installed when it should be + * Removed printf's + 2005-01-02 Dan Williams <drw@handhelds.org> * Released version 0.6.1 * Implemented native package linking code to remove need for ipkg-link * Implement package in OIpkg (removed from InstallDlg) as this is ipkg specific * Many small code tweaks - + 2004-12-21 Dan Williams <drw@handhelds.org> * Released version 0.6.0 * Added support for Ipkg 'src/gz' feeds * Improve server and destination tabs UI's in configuration dialog * Fix app linking to link all dependent packages as well as selected packages * Hide 'Retrive File List' button once list is retrieved in Package Info dialog diff --git a/noncore/settings/packagemanager/oipkg.cpp b/noncore/settings/packagemanager/oipkg.cpp index f2d7e39..e7e292e 100644 --- a/noncore/settings/packagemanager/oipkg.cpp +++ b/noncore/settings/packagemanager/oipkg.cpp @@ -358,16 +358,20 @@ OPackageList *OIpkg::installedPackages( const QString &destName, const QString & line = t.readLine(); } else line = t.readLine(); } f.close(); + // Make sure to add to list last entry + if ( !name.isNull() && status.contains( " installed" ) ) + pl->append( new OPackage( name, QString::null, version, QString::null, destName ) ); + return pl; } OConfItem *OIpkg::findConfItem( OConfItem::Type type, const QString &name ) { // Find configuration item in list OConfItemListIterator configIt( *m_confInfo ); OConfItem *config = 0l; @@ -448,17 +452,17 @@ bool OIpkg::executeCommand( OPackage::Command command, const QStringList ¶me linkPackageDir( destination ); }; break; case OPackage::Remove : { connect( this, SIGNAL(signalIpkgMessage(const QString &)), receiver, slotOutput ); // Get list of destinations for unlinking of packages not installed to root OConfItemList *destList = destinations(); - + for ( QStringList::ConstIterator it = parameters.begin(); it != parameters.end(); ++it ) { unlinkPackage( (*it), destList ); ipkg_packages_remove( &m_ipkgArgs, (*it), true ); } delete destList; }; @@ -640,17 +644,17 @@ const QString &OIpkg::rootPath() return m_rootPath; } void OIpkg::linkPackageDir( const QString &dest ) { if ( !dest.isNull() ) { OConfItem *destConfItem = findConfItem( OConfItem::Destination, dest ); - + emit signalIpkgMessage( tr( "Linking packages installed in: %1" ).arg( dest ) ); // Set package destination directory QString destDir = destConfItem->value(); QString destInfoDir = destDir; if ( destInfoDir.right( 1 ) != '/' ) destInfoDir.append( '/' ); destInfoDir.append( IPKG_INFO_PATH ); @@ -684,17 +688,17 @@ void OIpkg::linkPackageDir( const QString &dest ) linkFile = t.readLine(); QString linkDest( linkFile.right( linkFile.length() - destDir.length() ) ); linkDest.prepend( rootPath() ); // If file installed file is actually symbolic link, use actual file for linking QFileInfo fileInfo( linkFile ); if ( fileInfo.isSymLink() && !fileInfo.readLink().isEmpty() ) linkFile = fileInfo.readLink(); - + // See if directory exists in 'root', if not, create fileInfo.setFile( linkDest ); QString linkDestDirName = fileInfo.dirPath( true ); QDir linkDestDir( linkDestDirName ); if ( !linkDestDir.exists() ) { linkDestDir.mkdir( linkDestDirName ); } @@ -728,17 +732,17 @@ void OIpkg::unlinkPackage( const QString &package, OConfItemList *destList ) OConfItemListIterator it( *destList ); for ( ; it.current(); ++it ) { OConfItem *dest = it.current(); QString destInfoFileName = QString( "%1/%2/%3.list" ).arg( dest->value() ) .arg( IPKG_INFO_PATH ) .arg( package ); //emit signalIpkgMessage( QString( "Looking for '%1'" ).arg ( destInfoFileName ) ); - + // If found and destination is not 'root', remove symbolic links if ( QFile::exists( destInfoFileName ) && dest->name() != "root" ) { QFile destInfoFile( destInfoFileName ); if ( destInfoFile.open( IO_ReadOnly ) ) { QTextStream t( &destInfoFile ); QString linkFile; diff --git a/noncore/settings/packagemanager/opackagemanager.cpp b/noncore/settings/packagemanager/opackagemanager.cpp index ac16954..c9fdec1 100644 --- a/noncore/settings/packagemanager/opackagemanager.cpp +++ b/noncore/settings/packagemanager/opackagemanager.cpp @@ -78,20 +78,19 @@ void OPackageManager::loadAvailablePackages() OPackageList *packageList = m_ipkg.availablePackages( server->name() ); if ( packageList ) { for ( OPackageListIterator packageIt( *packageList ); packageIt.current(); ++packageIt ) { OPackage *package = packageIt.current(); // Load package info - if ( !m_packages.find( package->name() ) ) { - printf( "ADD AVAILABLE '%s'\n", package->name().latin1()); + if ( !m_packages.find( package->name() ) ) m_packages.insert( package->name(), package ); - } else + else { // If new package is newer version, replace existing package OPackage *currPackage = m_packages[package->name()]; if ( compareVersions( package->version(), currPackage->version() ) == 1 ) m_packages.replace( package->name(), package ); } // Add category to list if it doesn't already exist @@ -134,17 +133,16 @@ void OPackageManager::loadInstalledPackages() // Update status QString status = tr( "Reading installed packages:\n\t" ); status.append( destination->name() ); emit statusText( status ); ++destCount; emit statusBar( destCount ); qApp->processEvents(); - printf( "DESGTINATION %s\n", destination->name().latin1()); OPackageList *packageList = m_ipkg.installedPackages( destination->name(), destination->value() ); if ( packageList ) { for ( OPackageListIterator packageIt( *packageList ); packageIt.current(); ++packageIt ) { OPackage *package = packageIt.current(); OPackage *currPackage = m_packages[package->name()]; @@ -154,17 +152,16 @@ void OPackageManager::loadInstalledPackages() currPackage->setVersionInstalled( package->versionInstalled() ); currPackage->setDestination( package->destination() ); delete package; } else { // Package isn't in a current feed, add to list - printf( "ADD INSTALLED '%s'\n", package->name().latin1()); m_packages.insert( package->name(), package ); // Add category to list if it doesn't already exist if ( m_categories.grep( package->category() ).isEmpty() ) { m_categories << package->category(); categoryAdded = true; } |