author | andyq <andyq> | 2002-11-02 13:52:55 (UTC) |
---|---|---|
committer | andyq <andyq> | 2002-11-02 13:52:55 (UTC) |
commit | cf34849ac5c3eb9d16929cc88834973910209f74 (patch) (side-by-side diff) | |
tree | 06e189f927f88baeb16c927317153e1805a5f614 /noncore/settings/aqpkg | |
parent | d21d693d91af8ee8fb54478a6db67f5a0590a767 (diff) | |
download | opie-cf34849ac5c3eb9d16929cc88834973910209f74.zip opie-cf34849ac5c3eb9d16929cc88834973910209f74.tar.gz opie-cf34849ac5c3eb9d16929cc88834973910209f74.tar.bz2 |
Handles upgrading of local ipk files better and the Local-IPKG view displays
the name of the file rather thanthe package name (so version can easily be seen)
-rw-r--r-- | noncore/settings/aqpkg/global.h | 2 | ||||
-rw-r--r-- | noncore/settings/aqpkg/networkpkgmgr.cpp | 20 | ||||
-rw-r--r-- | noncore/settings/aqpkg/server.cpp | 8 |
3 files changed, 23 insertions, 7 deletions
diff --git a/noncore/settings/aqpkg/global.h b/noncore/settings/aqpkg/global.h index 96ab46c..a4363b4 100644 --- a/noncore/settings/aqpkg/global.h +++ b/noncore/settings/aqpkg/global.h @@ -15,13 +15,13 @@ * *
***************************************************************************/
#ifndef __GLOBAL_H
#define __GLOBAL_H
-#define VERSION_TEXT "AQPkg Version 0.7"
+#define VERSION_TEXT "AQPkg Version 0.8"
// Uncomment the below line to run on a Linux box rather than a Zaurus
// box this allows you to change where root is, and where to load config files from
// #define X86
// Sets up location of ipkg.conf and root directory
diff --git a/noncore/settings/aqpkg/networkpkgmgr.cpp b/noncore/settings/aqpkg/networkpkgmgr.cpp index 3d06aef..dee834e 100644 --- a/noncore/settings/aqpkg/networkpkgmgr.cpp +++ b/noncore/settings/aqpkg/networkpkgmgr.cpp @@ -511,29 +511,34 @@ InstallData NetworkPackageManager :: dealWithItem( QCheckListItem *item ) name.truncate( pos - 1 ); // Get package Server *s = dataMgr->getServer( serversList->currentText() ); Package *p = s->getPackage( name ); - // If the package has a filename then it is a local file - if ( p->isPackageStoredLocally() ) - name = p->getFilename(); + // If the package has a filename then it is a local file + if ( p->isPackageStoredLocally() ) + name = p->getFilename(); + QString option; QString dest = "root"; if ( !p->isInstalled() ) { InstallData item; item.option = "I"; item.packageName = name; - return item; + return item; } else { InstallData item; item.option = "D"; - item.packageName = p->getInstalledPackageName(); + if ( !p->isPackageStoredLocally() ) + item.packageName = p->getInstalledPackageName(); + else + item.packageName = name; + if ( p->getInstalledTo() ) { item.destination = p->getInstalledTo(); cout << "dest - " << p->getInstalledTo()->getDestinationName() << endl; cout << "dest - " << p->getInstalledTo()->getDestinationPath() << endl; } @@ -541,12 +546,17 @@ InstallData NetworkPackageManager :: dealWithItem( QCheckListItem *item ) { item.destination = p->getLocalPackage()->getInstalledTo(); } // Now see if version is newer or not int val = compareVersions( p->getInstalledVersion(), p->getVersion() ); + + // If the version requested is older and user selected a local ipk file, then reinstall the file + if ( p->isPackageStoredLocally() && val == -1 ) + val = 0; + if ( val == -2 ) { // Error - should handle } else if ( val == -1 ) { diff --git a/noncore/settings/aqpkg/server.cpp b/noncore/settings/aqpkg/server.cpp index 8bca892..539ebf0 100644 --- a/noncore/settings/aqpkg/server.cpp +++ b/noncore/settings/aqpkg/server.cpp @@ -107,13 +107,14 @@ void Server :: readLocalIpks( Server *local ) for ( ; it.current() ; ++it ) { // OK, we have a local IPK file, I think the standard naming conventions // for these are packagename_version_arm.ipk QString file = (*it)->file(); - QString packageName = Utils::getPackageNameFromIpkFilename( file ); + // Changed to display the filename (excluding the path) + QString packageName = Utils::getFilenameFromIpkFilename( file ); QString ver = Utils::getPackageVersionFromIpkFilename( file ); packageList.push_back( Package( packageName ) ); packageList.back().setVersion( ver ); packageList.back().setFilename( file ); packageList.back().setPackageStoredLocally( true ); @@ -224,12 +225,17 @@ void Server :: readPackageFile( Server *local, bool clearAll, bool installingToR void Server :: buildLocalPackages( Server *local ) { for ( unsigned int i = 0 ; i < packageList.size() ; ++i ) { QString name = packageList[i].getPackageName(); + + // If the package name is an ipk name, then convert the filename to a package name + if ( name.find( ".ipk" ) != -1 ) + name = Utils::getPackageNameFromIpkFilename( packageList[i].getFilename() ); + if ( local ) packageList[i].setLocalPackage( local->getPackage( name ) ); else packageList[i].setLocalPackage( 0 ); } |