summaryrefslogtreecommitdiff
path: root/noncore
authorandyq <andyq>2002-11-02 13:52:55 (UTC)
committer andyq <andyq>2002-11-02 13:52:55 (UTC)
commitcf34849ac5c3eb9d16929cc88834973910209f74 (patch) (side-by-side diff)
tree06e189f927f88baeb16c927317153e1805a5f614 /noncore
parentd21d693d91af8ee8fb54478a6db67f5a0590a767 (diff)
downloadopie-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)
Diffstat (limited to 'noncore') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/aqpkg/global.h2
-rw-r--r--noncore/settings/aqpkg/networkpkgmgr.cpp10
-rw-r--r--noncore/settings/aqpkg/server.cpp8
3 files changed, 18 insertions, 2 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
@@ -18,7 +18,7 @@
#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
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
@@ -517,6 +517,7 @@ InstallData NetworkPackageManager :: dealWithItem( QCheckListItem *item )
// 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() )
@@ -530,7 +531,11 @@ InstallData NetworkPackageManager :: dealWithItem( QCheckListItem *item )
{
InstallData item;
item.option = "D";
+ if ( !p->isPackageStoredLocally() )
item.packageName = p->getInstalledPackageName();
+ else
+ item.packageName = name;
+
if ( p->getInstalledTo() )
{
item.destination = p->getInstalledTo();
@@ -544,6 +549,11 @@ InstallData NetworkPackageManager :: dealWithItem( QCheckListItem *item )
// 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
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
@@ -110,7 +110,8 @@ void Server :: readLocalIpks( Server *local )
// 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 );
@@ -227,6 +228,11 @@ 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